预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

数据结构课程实验 班级:xxxx 学号:xxxxxx 姓名:xxxxxx 指导老师:xxxxx 实验一 实验名称:线形表操作 实验目的:1.熟悉线形表的顺序存储结构及其基本操作 2.熟悉C++程序的基本结构,掌握程序中主文件的结构作用 3.熟悉C++操作环境的使用及多文件程序的输入,编辑,调试及运行的全过程. 实验原理:该程序的功能是对元素类型为整型的顺序存储的线性表进行一些操作,此程序的主文件包括用来存储定义的线性表结构类型以及对线性表进行的各种操作的函数声明,及每一种线性操作的具体函数定义和定义线性表,调用线性表的一些具体操作. 实验程序: #include<stdio.h> #include<stdlib.h> #include<iostream.h> #defineOK1 #defineERROR0 #defineOVERFLOW-2 typedefintElemType; typedefintStatus; #defineLIST_INIT_SIZE100 #defineLISTINCREMENT10 typedefstruct{ ElemType*elem; intlength; intlistsize; }SqList; StatusInitList_Sq(SqList&L){ inti; L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(!L.elem)exit(OVERFLOW); for(i=1;i<=5;i++) scanf("%d",&L.elem[i-1]); L.length=5; L.listsize=LIST_INIT_SIZE; returnOK; }//InitList_Sq StatusPrintList_Sq(SqListL){ inti; printf("顺序表中的元素为:"); for(i=1;i<=L.length;i++) printf("%d",L.elem[i-1]); printf("\n"); returnOK; }//PrintList_Sq StatusListInsert_Sq(SqList&L,inti,ElemTypee){ ElemType*p,*q; if(i<1||i>L.length+1)returnERROR; if(L.length>=L.listsize){ L.elem=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType)); if(!L.elem)exit(OVERFLOW); L.listsize+=LISTINCREMENT; } q=&(L.elem[i-1]); for(p=&(L.elem[L.length-1]);p>=q;--p)*(p+1)=*p; *q=e; ++L.length; returnOK; }//ListInsert_Sq StatusListDelete_Sq(SqList&L,inti,ElemType&e){ ElemType*p,*q; if((i<1)||(i>L.length))returnERROR; p=&(L.elem[i-1]); e=*p; q=L.elem+L.length-1; for(++p;p<=q;++p)*(p-1)=*p; --L.length; returnOK; }//ListDelete_Sq intLocateElem_Sq(SqListL,ElemTypee){ inti=1; ElemType*p; p=L.elem; while(i<=L.length&&!(*p++==e))++i; if(i<=L.length) returni; elsereturn0; }//LocateElem_Sq voidmain(){ SqListL; ElemTypee; intselect,i; printf("输入五个元素,构建顺序表:\n"); if(InitList_Sq(L)==OVERFLOW) printf("分配失败,退出程序!"); else do { printf("\n1:输出顺序表中的元素\n"); printf("\n2:在顺序表的第i个位置插入元素\n"); printf("\n3:删除顺序表第i个元素\n"); printf("\n4:查找顺序表第i个元素\n"); printf("\n0:结束操作\n"); scanf("%d",&select); switch(select){ case1:printf("\n");PrintList_Sq(L);break