线性表实验报告.doc

线性表实验报告.doc

ID:59795874

大小:19.00 KB

页数:6页

时间:2020-11-24

线性表实验报告.doc_第1页
线性表实验报告.doc_第2页
线性表实验报告.doc_第3页
线性表实验报告.doc_第4页
线性表实验报告.doc_第5页
资源描述:

《线性表实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、线性表实验报告一、实验的目的要求1、了解线性表的逻辑结构特性,以及这种结构特性在计算机内的两种存储结构。2、掌握线性表的顺序存储结构的定义及其C语言实现。3、掌握线性表的链式存储结构——单链表的定义及其C语言实现。4、掌握线性表在顺序存储结构即顺序表中的各种基本操作。5、掌握线性表在链式存储结构——单链表中的各种基本操作。6、认真阅读和掌握实验的程序。7、上机运行本程序。8、保存和打印出程序的运行结果,并结合程序进行分析。二、实验的主要内容题目:请编制C语言,利用链式存储方式来实现线性表的创建、插入、删除和查找等操作。具体地说,就是要根据键盘输入的数据建立一个单链表,并输出该单链表;然后根据

2、屏幕菜单的选择,可以进行数据的插入或删除,并在插入或删除数据后,再输出单链表;最后在屏幕菜单中选择0,即可结束程序的运行。三、解题思路分析在链表中插入数据,不需要进行大量的数据移动,只需要找到插入点即可,可以采用后插入的算法,在插入点的后面添加结点。在链表中删除数据,先找到删除点,然后进行指针赋值操作。四、程序清单#include#include#includetypedefintElemType;typedefstructLNode{ElemTypedata;structLNode*next;}LNode;LNode*L;LNode*c

3、reat_L();voidout_L(LNode*L);voidinsert_L(LNode*L,inti,ElemTypee);ElemTypedelete_L(LNode*L,ElemTypee);intlocat_L(LNode*L,ElemTypee);voidmain(){inti,k,loc;ElemTypee,x;charch;do{printf("");printf("1.建立单链表");printf("2.插入元素");printf("3.删除元素");printf("4.查找元素");printf("0.结束程序运行");printf("===

4、=============================");printf("请输入您的选择(1,2,3,4,0)");scanf("%d",&k);switch(k){case1:{L=creat_L();out_L(L);}break;case2:{printf("请输入插入位置:");scanf("%d",&i);printf("请输入要插入元素的值:");scanf("%d",&e);insert_L(L,i,e);out_L(L);}break;case3:{printf("请输入要删除元素的位置:");scanf("%d",&i);x=delete_L(L,i)

5、;out_L(L);if(x!=-1){printf("删除的元素为:%d",x);printf("删除%d后的单链表为:",x);out_L(L);}elseprintf("要删除的元素不存在!");}break;case4:{printf("请输入要查找的元素值:");scanf("%d",&e);loc=locat_L(L,e);if(loc==-1)printf("为找到指定元素!");elseprintf("已找到,元素位置是%d",loc);}break;}printf("----------------");}while(k>=1&&k<5);p

6、rintf("按回车键,返回...");ch=getchar();}LNode*creat_L(){LNode*h,*p,*s;ElemTypex;h=(LNode*)malloc(sizeof(LNode));h->next=NULL;p=h;printf("请输入第一个数据元素:");scanf("%d",&x);while(x!=-999){s=(LNode*)malloc(sizeof(LNode));s->data=x;s->next=NULL;p->next=s;p=s;printf("请输入下一个数据:(输入-999表示结束.)");scanf("%d",&x);}

7、return(h);}voidout_L(LNode*L){LNode*p;p=L->next;printf("");while(p!=NULL){printf("%5d",p->data);p=p->next;};}voidinsert_L(LNode*L,inti,ElemTypee){LNode*s,*p;intj;p=L;j=0;while(p!=NULL&&j<=i-1){p=p->next

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

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

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