实验一 顺序表

  • 格式:doc
  • 大小:34.51 KB
  • 文档页数:3

下载文档原格式

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

实验一顺序表

一、预备知识

1.顺序表的存储结构形式及其描述

2.顺序表的建立、查找、插入和删除操作

二、实验目的

1.掌握顺序表的存储结构形式及其描述

2.掌握顺序表的建立、查找、插入和删除操作

三、实验内容

1.编写函数,输入一组整型元素序列,建立一个顺序表。

2.编写函数,实现对该顺序表的遍历。

3.编写函数,在顺序表中进行顺序查找某一元素,查找成功则返回其存储位置i,否则返回错误信息。

4.编写函数,实现在顺序表的第i个位置上插入一个元素x的算法。

5.编写函数,实现删除顺序表中第i个元素的算法。

6.编写利用有序表插入算法建立一个有序表的函数。

7.编写函数,实现输入一个元素x,把它插入到有序表中,使顺序表依然有序。

四、实验说明

1.顺序表的存储定义

#define MAXSIZE 100 //顺序表的最大元素个数

typedef int ElemType;//顺序表的元素类型

typedef struct

{ElemType elem[MAXSIZE];//静态线性表

int length; //顺序表的实际长度

} SqList;//顺序表的类型名

举例4:

#include

#define MaxSize 100

typedef int DataType;

typedef struct//定义结构体Seqlist

{

DataType list[MaxSize];

int size;

} SeqList;

int ListLength(SeqList L)//当前数据元素个数

{

return L.size;

}

int ListInsert(SeqList *L,int i,DataType x)

{

int j;

if(L->size>=MaxSize)

{

printf("顺序表已满无法插入!\n");

return 0;

}

else if(i<0||i>L->size)

{

printf("i is error");

return 0;

}

else

{

for(j=L->size; j>i-1; j--)L->list[j]=L->list[j-1];

L->list[i-1]=x;

L->size++;

return 0;

}

}

int main(void)

{

SeqList La;

int i,x;

int n,m;//线性表长度

printf("请输入线性表La的长度:");

scanf ("%d",&n);

La.size=n;

printf("请输入线性表La中的元素:");

for(i=0; i

scanf ("%d",&La.list[i]);

printf("请输入要插入到线性表La中的数字x和插入的位置i:");

scanf("%d%d",&x,&i);

ListInsert(&La,i,x);

printf("线性表La=");

for(i=0; i

printf("%d ",La.list[i]);

return 0;

}

五、注意问题

1.插入、删除时元素的移动原因、方向及先后顺序。

2.理解不同的函数形参与实参的传递关系。

六、实验报告

根据实验情况和结果撰写并递交实验报告。