创建链表和链表操作实验报告(共9页).doc





《创建链表和链表操作实验报告(共9页).doc》由会员分享,可在线阅读,更多相关《创建链表和链表操作实验报告(共9页).doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上数据结构实验报告报告名称 创建链表和链表操作 专 业 网络工程 班 级 1001 学 号 9 姓 名 张剑 指导教师 陈淑红 李珍辉 黄哲 2012 年 5月 4日 一、实验目的:掌握线性表的基本操作:插入、删除、查找以及线性表合并等运算在顺序存储结构和链接存储结构上的运算。二、实验内容与基本要求:实验内容:1. 创建单链表2在链表上进行插入、删除操作;3设计一个程序,用两个单链表分别表示两个集合,并求出这两个集合的并集。实验要求: 1 在上机前写出全部源程序; 2 能在机器上正确运行程序;3 用户界面友好;三、概要设计:1.单链表的存储结构:teypedef str
2、uct LNodeElemType date; struct LNond *next;LNode *LinkList;2.单链表的插入操作:Status ListTnsert-L(LinkLIst &L, int i, ElemType e )/再带头结点的单链线性表L中的第i个位置之前插入元素eP=l; j=0;While(p&jnext;+j;/寻找第i-1个结点if(!p|ji-1) return ERROR; /i小小于1或者大于表长+1s=(LinkList) malloc (sizeof(LNode); /生成新结点s-date=e; s-next=p-next; /插入L中p-n
3、ext=s;return ok;/ListTnsert L3.单链表的删除操作:Status ListDelete-L(LinkLIst &L, int i, ElemType &e )/在带头结点单链线性表L中,删除低i个元素,并由e 返回其值p=l; j=0;while(p-next&jnext; +j;if(!(p-next)|ji-1)return ERROR; /删除位置不合理q=p-next ; p-next=q-next; /删除并释放结点e=q-date free(q);return OK; /ListDelete-L4.链表的合并操作: void MergeList-L(Li
4、nkList &La, LinkList &Lb, LinkList &Lc)/ 已知单链表La和Lb的元素值/合并单链表La和Lb,得到新的单链表Lcpa=La-next; pb=Lb-next;lc=pc=La; /用La的头结点作为Lc的 头结点 while(pa&pb)if(pa-datedate)pc-next =pa; pc=pa; pa=pa-next;else pc-next=pb;pc=pb;pb=pb-next;Pc-next=pa? pa:pb; /插入剩余段free(Lb); /释放Lb 头结点 /MergeList-L四、详细设计:#include #include
5、#include #include typedef int status;typedef char ElemType;typedef struct Lnode/定义链表结点类型 ElemType data; struct Lnode *next; Lnode,*Linklist; status initlist(Linklist *L) /单链表的初始化 *L=(Lnode *)malloc(sizeof(Lnode); /创建头结点 (*L)-next=NULL; return 1; status Createlist(Linklist L)/创建自己规定长度的单链表 Lnode *p,*q
6、; int i,j=1,n; ElemType m,M; q=L; printf(请输入你要输入单链中元素的个数n); scanf(%d,&n); scanf(%c,&m);/回车缓冲区 for(i=n;i0;i-) p=(Lnode *)malloc(sizeof(Lnode); printf(请输入%2.1d个元素:,j); scanf(%ld,&M); scanf(%c,&m);/回车缓冲区 p-data=M; p-next=q-next; q-next=p; q=p; j+; return 1; status Listinsert(Linklist L,int i,ElemType e
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 创建 操作 实验 报告

限制150内