线性表的基本操作

上传人:hs****ma 文档编号:482389165 上传时间:2022-12-30 格式:DOCX 页数:6 大小:52.68KB
返回 下载 相关 举报
线性表的基本操作_第1页
第1页 / 共6页
线性表的基本操作_第2页
第2页 / 共6页
线性表的基本操作_第3页
第3页 / 共6页
线性表的基本操作_第4页
第4页 / 共6页
线性表的基本操作_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《线性表的基本操作》由会员分享,可在线阅读,更多相关《线性表的基本操作(6页珍藏版)》请在金锄头文库上搜索。

1、实验一:线性表的基本操作一、实验目的:(1) 掌握线性表的基本运算,熟悉对线性表的一些基本操作和具体的函数定义。(2) 掌握顺序存储的概念,学会定义线性表的顺序存储类型。(3) 熟悉C语言程序的基本结构,掌握程序中的用户头文件、实现文件和主文件之间的相 互联系及各自的作用。(4) 熟悉C语言环境的使用以及多文件程序的输入、编辑、调试和运行的全过程。(5) 加深对顺序存储结构的理解,逐步培养解决实际问题的能力。二、实验要求:(1) 熟练掌握线性表的存储结构及其操作。(2) 理解实训案例的算法,掌握线性表在实际中的运用。(3) 将上机程序全部调试通过。(4) 独立完成一个至两个实训项目,保存程序运

2、行结果,并结合程序进行分析。三、实验内容:线性表的基本操作。第一步:定义线性表的存储结构。 第二步:编写线性表的具体函数定义。初始化线性表, 创建一个线性表。在线性表中查找指定的元素。 在线性表中插入指定的元素。 在线性表中删除指定的元素。 输出线性表。四、源代码:第三步:使用定义的线性表并调用线性表的一些操作,实现具体运算。1)2)3)4)5)6) sqList.h1010-2#define TRUE#define FALSE#define OK#define ERROR#define OVERFLOW#define ML10typedef int ElemType; typedef str

3、uct sqList ElemType listML; int size;int MAXSIZE;sqList;sqListc#include #include #include #include sqListhsqList *Init_List(sqList *L,int ms) L=(sqList *)malloc(ms*sizeof(sqList);if(!L) printf(Memory allocation failure!n); exit(OVERFLOW);elseL-size=0;L-MAXSIZE=ms; return L;void Disp_List(sqList *L)i

4、nt i;for(i=0;ivL-size;i+) printf(%dtjL-listi); printf(n);int LocateElem_List(sqList *L,ElemType x)int i=0;for(i=0;iv=L-size;i+) if(L-listi=x) return i;if(iL-size) return -1;int Insert_List(sqList *L;ElemType x,int mark) int i=1;if(L-size=L-MAXSIZE)return -1;if(mark0) for(i=L-size+1;i=mark;i-) L-list

5、i+1=L-listi;L-listi=x;else if(markv0)L-listL-size=x;L-size+;return FALSE;int Delete_List1(sqList *Ljnt item)int ij;for(i=0;ivL-size;i+)if(item=L-listi) break;if(ivL-size)for(j=i+1;jvL-size-1;j+)L-listj=L-listj+1;L-size-;return i;return FALSE;int Delete_List2(sqList *L,int mark)int i,item;if(mark0)it

6、em=L-listmark;for(i=mark+1;ivL-size-1;i+)L-listi=L-listi+1;L-size-;return i;return FALSE;sqListmainc#includesqList.cvoid main()int p,n;ElemType x=0;sqList a,*b;b=Init_List(&a;ML); printf(listaddr=%ptsize=%dtMaxSize=%dn,b-list,b-size,b-MAXSIZE); whileprintf(n请输入元素值,0为结束输入:”);scanf(%d,&x);if(!x)break;

7、printf(请输入插入位置:);scanf(%d,&p);Insert_List(b,x,p);printf(线性表为:n);Disp_List(b);whileprintf(请输入査找元素值,输入0结束査找操作:”);scanf(%d,&x);if(!x) break;n=LocateElem_List(b,x);if(n0) printf(没 找到 n);elseprintf(有符合条件的元素,位置为:%dn,n+1);whileprintf(请输入删除元素值,输入0结束査找操作:”); scanf(%d,&x);if(!x)break;n=Delete_List1(b,x);if(n0

8、)printf(没找到 n);elseprintf(删除元素成功蔵性表为:);Disp_List(b);while(1)printf(请输入删除元素位置,输入0结束査找操作:);scanf(%d,&p);if(!p) break;n=Delete_List2(b,p);if(p _ _ I . 1 _&输入删除元素位置,输入0结東査找操作洛性表为:25810I N 亠 J j 一,一 、_33=1 !_ 3. ._d_l _ _t 六、心得体会:通过这次写实验报告,我深切的理解了这门课的本质。刚开始学 这门课时,当时还不清楚这门课程的目的,现在,我真正的理解了: 数据结构像是身体的骨骼,而C语

9、言是填充这骨骼的肉体,二者相结 合才能使整个程序更加完整,健全。数据结构是个框架,模型,抽象 数据类型中列举了各种操作,而所用的C语言,将各种操作描述出来 构成算法。数据结构+算法二程序设计。在这次设计的过程中,我还遇到了,很多的问题。顺序表是按顺 序存储的,用了一维数组来存储,又结合C的程序设计,我又用了类, 但是,在执行时出现了问题。后来问同学,指出我的错误,不过获益 不少。我又重新整理思路,把顺序表的基本操作写好了虽然走了很 多弯路,但是让我认识到,一定要创新,大胆,不能按照旧的思路去 干新的事情。这次的实验报告,让我受益匪浅,不仅有知识方面的,还有生活 和精神上的。总之,我会继续我的兴趣编程,相信在编程的过程中, 能不断的提咼自己。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号