数据结构实验二-供参考_第1页
数据结构实验二-供参考_第2页
数据结构实验二-供参考_第3页
数据结构实验二-供参考_第4页
数据结构实验二-供参考_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、洛阳理工学院实验报告系部计算机系班级学号姓名课程名称数据结构实验日期实验名称链表的基本操作成绩实验目的:(1)掌握线性表的链式存储结构的特点;(2)掌握线性表的基本操作:初始化、插入、删除、查找数据元素等运算在链式存储结构上的实现。实验条件:计算机一台,vc+6.0实验内容与算法思想:内容:建立一有序的链表,实现下列操作:1.把元素x插入表中并保持链表的有序性;2.查找值为x的元素,若找到将其删除;3.输出表中各元素的值。算法思想:先创建并初始化一个顺序表(void init_linklist(LinkList)),通过循环,输入一串数据void CreateFromTail(LinkList

2、 L);创建主函数;编写算法,完成子函数(查找locate,插入insList,删除DelList,输出output)模块;调用子函数,完成实验要求运行结果:实验总结:通过该次实验掌握了线性表的基本操作:插入、删除、查找在顺序存储结构上的实现。更深一步了解到算法在c语言程序中的使用及函数调用的方法。编写过程中出现了比较多的问题,比如排序一直没编好,经过多次修改才运行成功,排序还是c语言的知识,说明对c语言掌握的还不是很好,还需要多加练习。经过这次实验,我觉得我要加倍努力才行,提高自己编写的能力。附:源程序:#include#include#define OK 1#define ERROR 0t

3、ypedef char ElemType;typedef struct NodeElemType data; struct Node* next;Node,*LinkList;void init_linklist(LinkList *l)*l=(LinkList)malloc(sizeof(Node); (*l)-next=NULL; void CreateFromTail(LinkList L)Node *r, *s;char c;int flag =1;r=L; while(flag) c=getchar();if(c!=$)s=(Node*)malloc(sizeof(Node);s-d

4、ata=c;r-next=s;r=s;elseflag=0;r-next=NULL; Node *Locate( LinkList L,ElemType key)int k;Node *p;k=1;p=L-next; while (p!=NULL)if (p-data!=key)p=p-next; k+;else break; printf(查询的元素的位置为:); printf(%dn,k-1);return p; void InsList(LinkList L,int e) LinkList p=L-next,q=L,s; if(p-next=NULL) printf(这是一个空链表n);

5、 else while(p&(p-datanext; if(p&(p-data=e) s=(LinkList)malloc(sizeof(Node); s-data=e; s-next=p; q-next=s; else s=(LinkList)malloc(sizeof(Node); s-data=e; s-next=NULL; q-next=s; int DelList(LinkList L,ElemType key) Node *p,*pt; p=L-next; pt=p-next; if(p-data=key) L-next=pt; free(p); else while(pt!=NU

6、LL) 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 1; void output(LinkList L)Node *p;p=L-next;while(p!=NULL)printf(%2c,p-data); p=p-next;void main() LinkList L; ElemType m,n,a; init_linklist(&L); printf(请输入您要录入的元素以$结束:n); CreateFromTail(L); output(L); printf(n); printf(请输入您要查询的元素:n); getchar(); n=getchar(); Locate(L,n); printf(请输入您要插入的元素:n); getchar(); m=getchar(); InsList(L, m); output(L); printf(n); printf(请输入您要删除的元素:n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论