数据结构--顺序表的增删改查

#include #include #include #include #define MAXLEN 100typedef int DataType; typedef struct seqlist { DataType Data[MAXLEN]; int Length; }SeqList; SeqList L; void InitList(SeqList *L)//初始化 { L->Length=0; }void CreateList(SeqList *L)//创建 { int i,n; printf("\n请输入你要插入的元素个数!\n"); scanf("%d",&n); printf("\n请输入%d个整数\n",n); for(i=0; iData[i]); } L->Length=i; }void DispList(SeqList *L)//输出 { int i; for(i=0; iLength; i++) printf("%-4d",L->Data[i]); printf("\n"); }int DelList(SeqList *L)//删除 { int n; printf("请输入你要删除的元素的位置\n"); scanf("%d",&n); if(L->Length==0) { printf("线性表为空,不能删除\n"); return 0; } else if(n<1||n>L->Length) { printf("输出位置出错,删除失败\n"); return 0; } else { for(n=n-1; nLength; n++) { L->Data[n]=L->Data[n+1]; } L->Length-=1; printf("删除成功!删除后的线性表为:\n"); return 1; } }int Lookup1(SeqList *L)//按值查找 { int i,n,y=0; printf("请输入你要查找的元素\n"); scanf("%d",&n); for(i=0; iLength; i++) { if(n==L->Data[i]) y=1; } if(y==0) { printf("你输入的值不存在于线性表!\n"); return 0; } else { printf("你查找的元素位置为:"); for(i=0; iLength; i++) { if(n==L->Data[i]) printf(" %d",i+1); } printf("\n"); return 1; } }int Lookup2(SeqList *L)//按位置查找 { int n; printf("请输入你要查找元素的位置\n"); scanf("%d",&n); if(n<1||n>L->Length) { printf("位置出错!\n"); return 0; } if(n <= L->Length) { printf("你查找元素的值为:%d\n",L->Data[n-1]); return 1; } }int Ins(SeqList *L)//插入 { int n,i,num; printf("请输入你要插入的位置\n"); scanf("%d",&n); if(n<1||n>L->Length) { printf("插入位置出错\n"); return 0; } if(n <= L->Length) { printf("请输入你要插入的元素\n"); scanf("%d",&num); { for(n-=1,i=L->Length; i>n; i--){ L->Data[i]=L->Data[i-1]; } } } L->Data[n]=num; L->Length++; printf("插入元素成功,插入后的线性表为:\n"); return 1; }void Menu() { printf("\n顺序栈的各种操作"); printf("\n =================================="); printf("\n |1 建立线性表|"); printf("\n |2 插入操作|"); printf("\n |3 删除操作|"); printf("\n |4 按位置查找|"); printf("\n |5 按值查找|"); printf("\n |6 求线性表长度|"); printf("\n |0 返回|"); printf("\n =================================="); printf("\n请输入菜单号(0~6):"); }int main() { int number; char ch='Y'; SeqList L; InitList(&L); //初始化 while(ch=='Y'||ch=='y') { Menu(); scanf("%d",&number); getchar(); switch(number) { case 1: CreateList(&L); printf("建立线性表成功\n"); DispList(&L); break; case 2: Ins(&L); DispList(&L); break; case 3: DelList(&L); DispList(&L); break; case 4: Lookup2(&L); DispList(&L); break; case 5: Lookup1(&L); DispList(&L); break; case 6: printf("当前线性表的长度为:%d\n",L.Length); break; case 0: ch='n'; break; default: printf("输入错误,请输入0~6选择!\n"); } } return 0; }

    推荐阅读