单链表操作实验报告

单链表操作实验报告

ID:35216183

大小:35.45 KB

页数:4页

时间:2019-03-21

单链表操作实验报告_第1页
单链表操作实验报告_第2页
单链表操作实验报告_第3页
单链表操作实验报告_第4页
资源描述:

《单链表操作实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、线性表一、实验目的1.了解线性表的逻辑结构特征,以及这种特性在计算机内的两种存储结构。2.掌握线性表的顺序存储结构的定义及其C语言实现。3.掌握线性表的链式村粗结构——单链表的定义及其C语言实现。4.掌握线性表在顺序存储结构即顺序表中的各种基本操作。5.掌握线性表在链式存储结构——单链表中的各种基本操作。二、实验要求1.认真阅读和掌握本实验的程序。2.上机运行本程序。3.保存和打印出程序的运行结果,并结合程序进行分析。4.按照对顺序表和单链表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果三

2、、实验内容请编写C程序,利用链式存储方式来实现线性表的创建、插入、删除和查找等操作。具体地说,就是要根据键盘输入的数据建立一个单链表,并输出该单链表;然后根据屏幕菜单的选择,可以进行数据的插入或删除,并在插入或删除数据后,再输出单链表;然后在屏幕菜单中选择0,即可结束程序的运行。四、解题思路本实验要求分别写出在带头结点的单链表中第i(从1开始计数)个位置之后插入元素、创建带头结点的单链表中删除第i个位置的元素、顺序输出单链表的内容等的算法。五、程序清单#include#include

3、#includetypedefintElemType;typedefstructLNode{ElemTypedata;structLNode*next;}LNode;LNode*L;LNode*creat_L();voidout_L(LNode*L);voidinsert_L(LNode*L,inti,ElemTypee);ElemTypedelete_L(LNode*L,inti);intlocat_L(LNode*L,ElemTypee);voidmain(){

4、inti,k,loc;ElemTypee,x;charch;do{printf("");printf("1.建立单链表");printf("2.插入元素");printf("3.删除元素");printf("4.查找元素");printf("0.结束程序运行");printf("======================================");printf("请输入您的选择(1,2,3,4,0)");scanf("%d",&k);switch(k){ca

5、se1:{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);out_L(L);if(x!=-1){printf("删除的元素为:%d",x

6、);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)

7、;printf("按回车键,返回...");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;p

8、rintf("请输入下一个数据:(输入-999表示结束。)");scanf("%d",&x);}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

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

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

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