1 #include<stdio.h>
2 #include<stdlib.h>
3 #define LIST_INIT_SIZE 100
4 #define LISTINCREMENT 10
5 #define OK 1
6 #define ERROR 0
7 #define OVERFLOW -2
8 typedef int EleType;
9 typedef struct{
10 int length;
11 int *elem;
12 int listsize;
13 }SqList;
14 //创建顺序表并输入值
15 int Initlist(SqList *L){
16 L->elem = (int*)malloc(sizeof(int));
17 if(!L->elem) exit(OVERFLOW);
18 printf("分配成功\n");
19 int i,j,k,l;
20 printf("请输入5个元素:\n");
21 for(i=0;i<5;i++){
22 scanf("%d",&L->elem[i]);
23 }
24 L->length = i;
25 L->listsize = i*LISTINCREMENT;
26 return OK;
27 }
28 //返回顺序表中的第i个元素
29 int GetElem(SqList L,int i,int &e){
30 if(i<1||i>L->length) return ERROR;
31 int j;
32 e = L->elem[i-1];
33 return OK;
34 }
35 //查找顺序表中的值为e的元素返回下标
36 int LocateElem(SqList L,int j,int &e){
37 int i;
38 for(i=0;i<L->length;i++){
39 if(L->elem[i]==j){
40 e = i+1;
41 return OK;
42 }
43 }
44 return ERROR;
45 }
46 //在顺序表i个位置插入e的元素
47 int InsList(SqList L,int i,int e){
48 //若储存空间已满需要进行再分配
49 int j;
50 if(i<1||i>L->length) return ERROR;
51 for(j=L->length-1;j>i;j--){
52 L->elem[j+1] = L->elem[j];
53 }
54 L->elem[i-1] = e;
55 L->length+=1;
56 return OK;
57 }
58 //删除顺序表中的第i个位置的元素并用e返回删除掉的元素
59 int DEList(SqList L,int i,int &e){
60 if(i<1||i>L->length) return ERROR;
61 int j;
62 e = L->elem[j-1];
63 for(j=i;j<L->length;j++){
64 L->elem[j-1] = L->elem[j];
65 }
66 return OK;
67 }
68 //打印顺序表中的元素
69 int print(SqList L) {
70 int i;
71 for(i=0;i<L->length;i++){
72 printf("%d\t",L->elem[i]);
73 }
74
75 printf("\n");
76 return OK;
77 }
78 int main(){
79 SqList *L;
80 if(Initlist(L)){
81 printf("创建成功\n");
82 }
83 else printf("创建失败\n");
84 int x,i,e;
85 printf("*************欢迎使用菜单************\n");
86 do{
87 printf("1:输出顺序表中的所有数据\n");
88 printf("2:查询顺序表的中的第i个元素的值\n");
89 printf("3:查询顺序表中的值是否等于e若等于则返回下标\n");
90 printf("4:在顺序表中的i个位置插入元素e\n");
91 printf("5:删除顺序表中的第i个元素\n");
92 printf("0: 退出\n");
93 scanf("%d",&x);
94 switch(x)
95 {
96 case 1: if(print(L)) break;
97 case 2: printf("请输入i的值:");
98 scanf("%d",&i);
99 if(GetElem(L,i,e)){
100 printf("\n第i个值为:%d",e);
101 }
102 else printf("查找失败");
103 break;
104 case 3: printf("请输入需要查找的值:");
105 scanf("%d",&i);
106 if(LocateElem(L,i,e)){
107 printf("\n")
108 }
109 }
110 }while(1);
111 }