1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
| #include <stdio.h> #include <stdlib.h> typedef int datatype; #define maxsize 1024
typedef struct { datatype data[maxsize]; int last; }sequenlist;
void CREAT(sequenlist *L)
{ int n,i,j=1; L->last=0; printf("请输入初始建立的数据个数:\n"); scanf("%d",&n); for(i=0;i<n;i++,j++) { printf("Data[%d]:",j); scanf("%d",&L->data[i]); L->last++; }
}
int INSERT(sequenlist *L,char x,int i) { int j; if(((*L).last)>=maxsize-1) { printf("overflow"); return NULL; } else if((i<1)||(i>((*L).last)+1)) { printf("error"); return NULL; } else { for(j=(*L).last;j>=i-1;j--) (*L).data[j+1]=(*L).data[j]; (*L).data[i-1]=x; (*L).last=(*L).last+1; } return(1); }
int DELETE(sequenlist *L,int i) { int j; if((i<1)||(i>(*L).last+1)) { printf("errer"); return NULL; } else { for(j=i;j<=(*L).last;j++) (*L).data[j-1]=(*L).data[j]; (*L).last--; } return (1); }
void SHOW(sequenlist *L) { int i,j=1; for(i=0;i<L->last;i++) printf("%d ",L->data[i]); printf("\n"); }
void charu(sequenlist *L) { int x,i; printf("请输入需要插入的位置:"); scanf("%d",&i); printf("请输入需要插入的数据:"); scanf("%d",&x); INSERT(L,x,i); }
void shanchu(sequenlist *L) { int i; printf("请输入需要删除的位置:"); scanf("%d",&i); DELETE(L,i); }
int main() { sequenlist *L; sequenlist list; L=&list; int select; while(1) { printf("请选择要执行的操作:\n1.表的建立及初始化 2.表的数据插入 3.表的数据删除 4.表的数据输出 5.退出\n"); scanf("%d",&select); switch(select) { case 1 : CREAT(L); break; case 2 : charu(L); break; case 3 : shanchu(L); break; case 4 : SHOW(L);break; case 5 : exit(1);break; default : printf("输入有误!");break; } } return 0; }
|