顺序表的基操作.doc

顺序表的基操作.doc

ID:55492874

大小:87.00 KB

页数:6页

时间:2020-05-15

顺序表的基操作.doc_第1页
顺序表的基操作.doc_第2页
顺序表的基操作.doc_第3页
顺序表的基操作.doc_第4页
顺序表的基操作.doc_第5页
资源描述:

《顺序表的基操作.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、***********************************实验题目:顺序表的基本操作班级:09007103姓名:岑创平学号:0900710309专业:信息与计算科学实验完成的时间:2011年4月4日*********************************一、实验目的(1)掌握顺序表的基本运算,熟悉对顺序表的一些基本操作和具体函数的定义。(2)掌握顺序表的存储结构及其基本操作。(3)熟悉c语言程序的基本结构,掌握函数定义、调用等功能。(4)熟悉c语言环境的使用及程序的输入、编辑、调试和运行的全过程。二、实验要求(1)熟练掌握线性表的存储结构及其

2、基本操作。(2)理解所给出的算法,掌握顺序表在实际中的应用。(3)将上机程序调试通过,并能独立完成一至两个拓展题目。三、实验内容实现顺序表上的插入、删除等操作。调试程序并对相应的输出作出分析;修改输入数据,预期输出并验证输出的结果。加深对有关算法的理解。(1)主要内容:#defineMAXSIZE100/*宏定义*/#defineOK1#defineOVERFLOW-2#include"stdio.h"/*包含输入输出文件*/typedefintelemtype;typedefstruct/*定义顺序表的结构*/{elemtypevec[MAXSIZE];/*顺序

3、表数据成员所占据的存储空间*/intlast;/*顺序表中最后一个元素在数组中的下标(或向量中的位置)从0开始*/}sequenlist;intinsert(L,i,x)/*在顺序表的第i个元素之前插入一个新元素x*/sequenlist*L;inti;elemtypex;{intj;if(((*L).last)>=MAXSIZE-1){printf("thelistisoverflow!");return(0);/*溢出判断*/}elseif((i<1)

4、

5、(i>(*L).last+1)){printf("positionisnotcorrect!");

6、return(0);/*插入位置不正确*/}else{for(j=(*L).last;j>=i-1;j--)/*后移元素*/(*L).vec[j+1]=(*L).vec[j];(*L).vec[i-1]=x;/*插入新元素*/(*L).last=(*L).last+1;/*修改last的值*/}return(1);}voiddelete(L,i)/*删除顺序表的第i个元素*/sequenlist*L;inti;{intj;if((i<1)

7、

8、(i>(*L).last+2))printf("deletefail");else{for(j=i;j<=(*L).la

9、st;j++)(*L).vec[j-1]=(*L).vec[j];/*前移元素,覆盖掉要删除元素的值*/(*L).last--;/*修改last的值*/}}voidlistprint(sequenlist*L)/*输出线性表*/{inti;for(i=0;i<=(*L).last;i++)printf("i,e=%d,%d",i,L->vec[i]);}main(){sequenlistsl={{1,2,3,4,5,6,7,8,9,10},9};//直接给顺序表赋初值sequenlist*L;/*定义一个指向顺序表类型的指针变量*/inti,j,x;L=&sl

10、;/*给指针变量赋值*/printf("pleaseinputtheinsertpositionandinsertvalue");scanf("%d,%d",&i,&x);printf("theinsertposition:%dinsertvalue:%d",i,x);insert(L,i,x);listprint(L);printf("pleaseintputthedeleteposition:");scanf("%d",&j);delete(L,j);listprint(L);}该程序运行结果如下(2)预习思考题(1)定义一个定位函数locate(

11、L,x),具有元素检索的功能。当顺序表中存在一个值为x的数据元素时,返回第一次找到的数据元素的位序,否则,给出一个值,表示值为x的元素不存在。在主程序中调用该函数,分析操作结果。算法如下intlocat(L,x)/*x由主函数输入并接受locat的返回值*/sequenlist*L;intx;{inti;for(i=0;i<=(*L).last;i++)if((*L).date[i]==x)return(i);/*如果存在x则返回x的位置*/return0;/*否则返回0*/}说明:主函数输入定位值X由函数locat(L,x)接收完成定位功能后返回x的位置,若X不

12、存在则返回

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。