数据结构顺序链表c语言实现代码
程序代码:
#include<stdio.h> #include<malloc.h> #define MAXSIZE 100 #define ERROR 0 #define TRUE 1 typedef struct { int data[MAXSIZE]; int length; }SqList; int InitList(SqList *L,int e) { L->length=e; }//组建 int Insert(SqList *L,int i,int e) { int k; if(i<1||i>L->length+1) { return ERROR; } if(L->length>=MAXSIZE) { return ERROR; } for(k=L->length-1;k>=i-1;k--) { L->data[k+1]=L->data[k]; } L->data[i-1]=e; L->length++; return 1; }//插入 int DestroyList(SqList *L,int i,int *e) { int k; if(i<1||i>L->length) { return ERROR; } *e=L->data[i-1]; for(k=i;k<L->length;k++) { L->data[k-1]=L->data[k]; } L->length--; return 1; }//删除 int Iocate(SqList L,int e) { int i=0; while((i<=L.length)&&(L.data[i]!=e)) i++; if(i<=L.length) return i+1; else return ERROR; }//查找 void menu() { printf("请第一步建立线性表\n"); printf("1、建立线性表***********\n"); printf("2、插入**********\n"); printf("3、删除**********\n"); printf("4、查找**********\n"); printf("5、遍历输出********\n"); printf(""); printf("*6、退出**********\n"); } int main() { int num,length,number,location; int i,e; int *data; data=(int*)malloc(sizeof(int)); SqList *L; menu(); while(1) { printf("请输入你的选择:\n"); scanf("%d",&num); switch(num) { case 1: L=(SqList *)malloc(sizeof(SqList)); printf("请输入线性表的长度"); scanf("%d",&length); InitList(L,length); printf("依次输入线性表的%d个值",length); for(i=0;i<length;i++) { scanf("%d",&number); L->data[i]=number; } printf("输入完成"); break; case 2: printf("请输入你要插入的数值和位置"); scanf("%d %d",&e,&location); if(Insert(L,location,e)==TRUE) printf("插入成功"); else printf("插入失败"); break; case 3: printf("请输入你要删除的节点数"); scanf("%d",&i); if(DestroyList(L,i,data)) printf("删除成功,删除的节点数值为%d",number); else printf("删除失败"); break; case 4: printf("请输入你要查找的数值"); scanf("%d",&e); Location=Locate(*L,e); printf("你要查找的节点数值为%d",location); break; case 5: for(i=0;i<=L->length;i++) printf("%d",L->data[i]); break; case 6: return 0; } } printf("\n"); return 0; }
不会改了 不知道什么原因!求助!求助!求助!
[此贴子已经被作者于2016-9-26 21:20编辑过]