数据结构(二)

数据结构--顺序表的基础操作

数据结构之顺序表操作

操作总体:

        建立含有若干个元素的顺序表,并将结果在屏幕上输出。对刚建立的顺序表实现插入、删除、修改、查找,并将结果在屏幕上输出。

主程序:

#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");

}

运行结果:

                                      attachments-2021-03-i3CfrHyO6058b15cde3e6.png

@参考文献

数据结构c语言版第2版     ——人民邮电出版社

  • 发表于 2021-03-22 23:03
  • 阅读 ( 412 )
  • 分类:默认分类

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
不期而遇
不期而遇

8 篇文章

作家榜 »

  1. 阿九 20 文章
  2. q5320 14 文章
  3. 不期而遇 8 文章
  4. admin 7 文章
  5. 此心安處是吾鄉 4 文章
  6. 小白 4 文章
  7. Mr.Pang 3 文章
  8. yixinBC 3 文章