数据结构实验报告实验一.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构实验报告 1.实验序号 实验名称 实验一 创建单链表和单链表操作 2.班级、姓名、学号、实验日期 3.实验目的 掌握线性表的基本操作:插入、删除、查找、以及线性表合并等操作在顺序存储结构和链式存储结构上的实现。 测试数据为(3,9,5,6,11,8);在5之前插入4,7,并删除11 求集合{1,12,8,6,4,9}和{2,5,12,7,4}的并集 概要设计 为了条理清晰,分为2个程序分别实现插入删除功能和求并集功能 (1)创建链表:分配空间,根据链表长度输入值创建链表 修改插入位置结点的前后指针,将给定的值插入到指定的位置或者将指定位置的值删除 (2)创建两个链表,修改链表头尾指针,将两个链表合并 详细设计 实现插入删除功能 #includestdio.h #includeconio.h #includestdlib.h #includeiostream.h #define OK 1 #define OVERFLOW 0 typedef struct LNode { int data; // 数据域 struct LNode *next; // 指针域 }LNode,*LinkList; //结点结构类型和指向结点的指针类型 int TraverseList_L(LinkList L) //遍历单链表 { LinkList p; p=L-next; while(p) { printf(--%d,p-data); p=p-next; } return OK; } void CreateList_L(LinkList L,int n) { L=(LinkList)malloc(sizeof (LNode));//建立一个空链表L。 if(!L) { exit(OVERFLOW); } else L-next=NULL; int i=0; LinkList p,q; printf(请输入要在该链表存放的值); q=L; for(i=0;in;i++) { p=(LinkList)malloc(sizeof (LNode));//生成新结点。 scanf(%d,p-data); p-next=q-next; q-next=p; q=p; } } //在第i个元素插入一个元素。 LinkList ListInsert_L(LinkList L,int i,int e) { LNode *p,*s;int j; printf(输入要插入的结点位置:); scanf(%d,i); p=L;j=0; while(pji-1){p=p-next;++j;} if(!p||ji-1) {printf(您插入的位置不合法,不合法); return 0;}//判断i的值是否合法 s=(LinkList)malloc(sizeof(LNode)); if(!s) exit(OVERFLOW); printf(输入要在该结点存放的数值 :); scanf(%d,e); s-data=e;s-next=p-next; p-next=s; return(L); } //删除结点 LinkList ListDelete_L(LinkList L,int i,int e) { LNode *p,*q; p=L;int j=0; printf(输入要删除的结点的位置:); scanf(%d,i); while(p-next ji-1) {p=p-next;++j;} if(!(p-next)||ji-1) { printf(您删除的位置不合法,不合法); return 0; } q=p-next;p-next=q-next; e=q-data; } int main() { int n,i,e,m,j; LinkList L,LA; LNode *MergeList; printf(输入要定义的LA链表长度:);//输入链表LA值。 scanf(%d,n); CreateList_L(LA, n); printf(LA链表输出为:); TraverseList_L(LA); printf(\n); system(CLS);//clear screen printf(LA链表输出为:); Traver

文档评论(0)

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

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

1亿VIP精品文档

相关文档