实验二 数据结构顺序表的基本操作和代码实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 (i { 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); }