实验二 数据结构顺序表的基本操作和代码实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二、阅读教材P17-P20页的内容,实现线性结构上的顺序表的产生以及元素的查找、插入与删除。

具体要求如下:

1)、从键盘输入10个整数,产生顺序表。

2)、从键盘输入1个整数,在顺序表中查找该结点的位置。若找到,输出结点的位置;

若找不到,则显示“找不到”。

3)、从键盘输入2个整数,一个表示欲插入的位置i,另一个表示欲插入的数值x,将x

插入在对应位置上,输出顺序表所有结点值,观察输出结果。

4)、从键盘输入1个整数,表示欲删除结点的位置,输出顺序表所有结点值,观察输出

结果。

#include "stdio.h"

#define N 20

typedef struct {

int elem[N];

int last;

}SeqList;

void Initlist(SeqList *L)

{

L->last=-1;

}

void Creatlist(SeqList *L,int n)

{

int i;

printf("输入10个数字:");

for(i=0;i

{

scanf("%d",&L->elem[i]);//注意&符号

L->last++;

}

}

void Printlist(SeqList *L)

{

int i;

printf("\n输出顺序表为:\n");

for(i=0;i<=L->last;i++)

printf("%d\t",L->elem[i]);

}

void Locateelem(SeqList *L,int e)

{

int i;

for(i=0;i<=L->last;i++)

if(e!=L->elem[i])continue;

else break;

if(i<=L->last) printf("\n找到位置为:%d",i);

else printf("\n未找到");

}

void Insertlist(SeqList *L,int e,int i)

{

int j;

for(j=L->last;j>=i;j--)

L->elem[j+1]=L->elem[j];

L->elem[i]=e;

L->last++;

Printlist(L);

}

void Deletelem(SeqList *L,int i)

{

while (ilast)

{ L->elem[i]=L->elem[i+1];

i++;

}

L->last--;

Printlist(L);

}

void main()

{

SeqList L;

Initlist(&L);

Creatlist(&L,10);

// Printlist(&L,10);

Locateelem(&L,0);

// Insertlist(&L,12,4);

Deletelem(&L,3);

}

相关文档
最新文档