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