网站大量收购独家精品文档,联系QQ:2885784924

实验二链表的基本操作.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
洛阳理工学院实验报告 系部 计算机系 班级 B140502 学号 姓名 韩亚辉 课程名称 数据结构 实验日期 2015-10-13 实验名称 链表的基本操作 成绩 实验目的: (1)掌握线性表的链式存储结构的特点; (2)掌握线性表的基本操作:初始化、插入、删除、查找数据元素等运算在链式存储结构上的实现。 实验条件:计算机一台、Visual C++ 6.0 实验内容与算法思想: 内容: 建立一有序的链表,实现下列操作: 1.把元素x插入表中并保持链表的有序性; 2.查找值为x的元素,若找到将其删除; 3.输出表中各元素的值。 算法思想: 先是创建头指针初始化一个空链表。调用指针创建函数,用头插法把元素输入链表。然后在一个switch函数里面调用函数,选择实现输出、查找、插入和删除等操作。 运行结果:首先在主菜单界面输入0选择初始化建立链表(以$为结尾输入),输入1 2 5 8 9$完成建立链表返回主菜单;选择1进行插入操作,然后输入插入位置3和插入元素4,插入成功,输入y回到主菜单;选择2进行删除操作,输入要删除的元素5,删除成功,输入y返回主菜单;选择3进行链表输出,输出结果1 2 4 8 9,输入y返回主菜单;选择4结束程序。 实验总结: 通过上机实验更加熟练了解有关链表的各种算法,加深了对C语言的了解。基本掌握了基于链表的创建、查找、插入和删除等操作。 附:源程序: #includestdio.h #includemalloc.h #includestdlib.h #define ERROR 1 #define OK 0 typedef char ElemType; typedef struct Node { ElemType data; struct Node * next; }Node,* LinkList; void InitList(LinkList * L) { *L=(LinkList)malloc(sizeof(Node)); (*L)-next=NULL; } void CreateFromTail(LinkList L) { Node *r,*s; int flag=1; ElemType c; r=L; while(flag) { c=getchar(); if(c!=$) { s=(Node *)malloc(sizeof(Node)); s-data=c; r-next=s; r=s; } else { flag=0; r-next=NULL; } } } int InsList(LinkList L,int i,ElemType e) { Node * pre,*s; int k; if(i=0)return ERROR; pre=L; k=0; while(pre!=NULLki) { pre=pre-next; k=k+1; } if(!pre) return ERROR; s=(Node *)malloc(sizeof(Node)); s-data=e; s-next=pre-next; pre-next=s; return OK; } Node * Locate(LinkList L,ElemType key) { void display(); Node *p,*pt; p=L-next; pt=p-next; if(p-data==key) { L-next=pt; free(p); } else while(pt!=NULL) { if(pt-data!=key) { pt=pt-next; p=p-next; } else { p-next=pt-next; free(pt); break; } } if(pt==NULL)printf(无该元素\n); else printf(该元素已删除\n); return L; } void display(LinkList L) { Node *p; p=L-next; while(p!=NULL) { printf(%c,p-data); p=p-next; } } int main() { int i,

文档评论(0)

wuailuo + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档