建立含有若干个元素的顺序表,并将结果在屏幕上输出。对刚建立的顺序表实现插入、删除、修改、查找,并将结果在屏幕上输出。
主程序:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define DataType int
#define MAXSIZE 100
typedef struct
{
DataType data[MAXSIZE];
int last;
}SeqList;
//初始化
int InitList_SeqList(SeqList *L)
{
L->last=-1;
if(!(L=(SeqList*)malloc(sizeof(SeqList))))exit(0);
return 1;
}
//长度
int LengthList_SeqList(SeqList *L)
{
return(L->last+1);
}
//获取
DataType GetList_SeqList(SeqList*L,int i)
{
if(i<1||i>LengthList_SeqList(L))
return(NULL);
else
return(L->data[i-1]);
}
//定位
LocateList_SeqList(SeqList*L,DataType x)
{
int i=0;
while(i<LengthList_SeqList(L)&&L->data[i]!=x)
i++;
if(i<LengthList_SeqList(L))
return(i+1);
else
return(NULL);
}
//插入
int Insert_SeqList(SeqList*L,int i,DataType x)
{
int j;
if(i<1||i>L->last+2||L->last>=MAXSIZE-1)
return 0;
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_SeqList(SeqList*L,int i)
{
int j;
if(i<1||i>L->last+1)
return 0;
else
{
for(j = i;j<=L->last;j++)
L->data[j-1]=L->data[j];
L->last--;
return 1;
}
}
//检查是否为空
int Empty(SeqList*L)
{
if(L->last==-1)
return(1);
else
return(0);
}
void main()
{
SeqList list1,*L;
int x,i,j;
L=&list1;
//初始化及其创建列表(需要输入到0为止)
InitList_SeqList(L);
scanf("%d",&x);
i=1;
while(x!=0)
{
Insert_SeqList(L,i,x);
i++;
scanf("%d",&x);
}
for(j=1;j<=LengthList_SeqList(L);j++)
printf("%d ",GetList_SeqList(L,j));
//插入(输入位置和元素)
scanf("%d%d",&i,&x);
Insert_SeqList(L,i,x);
for(j=1;j<=LengthList_SeqList(L);j++)
printf("%d ",GetList_SeqList(L,j));
//删除元素(输入位置)
scanf("%d",&i);
Delete_SeqList(L,i);
for(j=1;j<=LengthList_SeqList(L);j++)
printf("%d ",GetList_SeqList(L,j));
//修改(先找到位置查找(输入元素))
scanf("%d",&x);
if(LocateList_SeqList(L,x)!=NULL)
printf("%d ",LocateList_SeqList(L,x));
else
printf("null");
//(再删除(输入位置))
scanf("%d",&i);
Delete_SeqList(L,i);
//(最后删除位置插入(输入位置和元素))
scanf("%d%d",&i,&x);
Insert_SeqList(L,i,x);
for(j=1;j<=LengthList_SeqList(L);j++)
printf("%d ",GetList_SeqList(L,j));
//释放空间
i=1;
while(!Empty(L))
Delete_SeqList(L,i);
if(Empty(L))
printf("NULL");
}
运行结果:
@参考文献
《数据结构》c语言版第2版 ——人民邮电出版社
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!