| 
 | 
 
 
 楼主 |
发表于 2020-11-5 23:49:52
|
显示全部楼层
 
 
 
#include <stdio.h> 
#include <stdlib.h> 
#define M 30  
typedef struct Linear_List 
{ 
        int list[M]; 
        int len; 
}Linear_List_Type; 
void DeleteList(Linear_List_Type * p, int i); 
void InsertList(Linear_List_Type * p, int m, int i, int b); 
void printList(Linear_List_Type * p); 
void main() 
{ 
int i,b,n,flag,m=30; 
Linear_List_Type p; 
(&p)->len=0; 
while(1) 
{ 
while(1) 
{ 
printf("请输入要插入的地方:\n"); 
scanf("%d",&i); 
printf("请输入要插入数据个数:"); 
scanf("%d",&n); 
for(i=0;i<n;i++) 
{ 
printf("请输入要插入的值:"); 
scanf("%d",&b); 
InsertList (&p,m,i,b); 
printList(&p); 
} 
printf("停止插入请输入0:\n"); 
scanf("%d",&flag); 
if(0==flag) 
goto DEL; 
} 
DEL: 
while(1) 
{ 
printf("请输入要删除的地方:"); 
scanf("%d",&i); 
DeleteList (&p,i); 
printList(&p); 
printf("停止删除请输入0:\n"); 
scanf("%d",&flag); 
if(0==flag) 
goto OUT; 
} 
OUT: 
printf("退出程序输入0:\n"); 
scanf("%d",&flag); 
if(0==flag) 
exit(0); 
} 
} 
void InsertList (Linear_List_Type * p, int m, int i, int b) 
{ 
        int k; 
        if(p->len == m){ 
              printf(" overflow!\n "); 
                return; 
        } 
        if(i > p->len){ 
                i = p->len + 1; 
        }else if( i < 1) 
                i = 1; 
        for(k = p->len; k >= i; k--) 
                p->list[k] = p->list[k -1]; 
         p->list[i-1] = b; 
         p->len += 1; 
} 
void DeleteList (Linear_List_Type * p, int i) 
{ 
        int k; 
        if(p->len == 0){ 
                printf(" underflow !\n "); 
                return; 
        } 
        if((i < 1) || (i > p->len)){ 
                printf(" This element is not in the list!\n "); 
        } 
        for(k = i; k < p->len; k++) 
                p->list[k-1] = p->list[k]; 
        p->len= p->len -1; 
        return; 
} 
void printList(Linear_List_Type * p) 
{ 
        int j; 
printf("表中的内容是:"); 
    for( j=0; j< p->len; j++) 
    { 
        printf("%d",p->list[j]); 
    } 
        printf("\n"); 
} 
我自己解决了,让大家见笑了 |   
 
 
 
 |