数据结构顺序链表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编辑过]

