数据结构 顺序表C++

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

肇庆学院计算机学院

实验报告

专业: 电子商务班级: 11科技1班姓名: 黎庆强学号:201124131147 课程名称: 顺序表学年学期1□/ 2□课程类别专业必修□限选□任选□实践□

●实验时间:2012年3月21日

●实验内容:

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

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

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

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

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

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

7.编写函数,利用以上算法,建立两个非递减有序表,并把它们合并成一个非递减有序表。

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

9.编写一个主函数,在主函数中设计一个简单的菜单,分别调试上述算法。

●实验目的及要求:

●目的:

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

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

要求:

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

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

●实验内容、方法与步骤:(使用附页填写并附在本页后)

●实验结果:(使用附页填写并附在本页后)

●小结:

通过这次的实验我学会了如何去运用顺序表的建立、查找、插入和删除操作,理解了不同的函数形参与实参的传递关系。

分数:批阅老师:20 年月日

第页/ 共页

肇庆学院计算机科学系

实验报告(附页)

实验内容、方法与步骤:

#include

#include//定义申请空间

#define maxsize 520

typedef int datatype;

typedef struct

{

datatype data[maxsize];

int last;

}Seqlist;//定义了一个顺序表:Seqlist L

void menu();

Seqlist * init_Seqlist();

int input_Seqlist(Seqlist *L);//输入数据

int location_Seqlist(Seqlist *L);//查找数据

int insert_Seqlist(Seqlist *L,int i,datatype x);//插入数据

int delete_Seqlist(Seqlist *L);//删除数据

int youinsert_Seqlist(Seqlist *L,int i,datatype x);//用有序表插入法建立顺序表

void merge_Seqlist(Seqlist *A,Seqlist *B,Seqlist *C);//建立两个非递减有序表并合成一个非递减有序表

int i,x,a,success;

int main()

{

int choic=1;

Seqlist *A;

Seqlist *B;

Seqlist *C;

Seqlist *L;

L=NULL;

do{

printf("******************************迎使用整型顺序表*****************************\n");

printf("\t\t【1】输入数据【2】输出数据【3】查找数据\n\n"); printf("\t\t【4】插入数据【5】删除数据【6】用有序表插入法建立顺序表\n\n");

printf("\t\t【7】把元素x插入到有序表里,使有序表依然有序\n\n");

printf("\t\t【8】建立两个非递减有序表并合成一个非递减有序表\n\n");

printf("\t\t【9】退出\n");

printf("************************************************ *******************************\n");

printf("请选择你要进行的操作【1-9】:");

scanf("%d",&choic);// 读入一个数

while(choic<1||choic>9)

{

printf("******************************输入错误!请重新选择******************************\n");

scanf("%d",&choic);//读入第二个数

}

switch(choic)

{

case 1: //输入数据

{

L=init_Seqlist();//初始化

printf("请输入整型数据的个数:");

scanf("%d",&a);

printf("请输入%d个整型数据:",a);

success=input_Seqlist(L);

break;

}

case 2:

{

if(success==1)

{

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

printf("%6d",L->data[i]);

}

else

printf("此表为空表!");

printf("\n\n");

break;

}

case 3:

{

printf("请输入你要查找的整型数据:");

scanf("%d",&a);

success=location_Seqlist(L);//查找数据

if(success==-1)

{

printf("*******************这个整型数据%d不存在!********************\n\n",a);

}

else

{

printf("你要查的整型数据%d的位置

相关文档
最新文档