数据结构实验报告线性表的链式表示和实现_第1页
数据结构实验报告线性表的链式表示和实现_第2页
数据结构实验报告线性表的链式表示和实现_第3页
数据结构实验报告线性表的链式表示和实现_第4页
数据结构实验报告线性表的链式表示和实现_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、理工夫数学与计算科学学院实验报告实验项目名称线性表的链式表示和实现所属课程名称:数据结构A实验类型:验证性实验日期:2012年4月5号班级:信管10-02班学号:201044070218姓名:张松涛成绩:一、实验概述:【实验目的】(1)、线性表的逻辑结构特征。 、总存在第一个和最后一个元素。 、除第一个元素以外,每一个元素总存在唯一一个直接前驱元素。 、除最后一个元素以外,每一个元素总存在唯一一个直接后驱元素。、顺序表的特征。 、逻辑关系上相邻的物理位置上也相邻。 、是一种随机存储结构,可以用一个简单直观的公式来表示每一个元素的地址。(3)学会定义线性表的链式存储类型,实现 C程序的基本结构,

2、对线性表的 一些基本操作和具体的函数定义。掌握顺序表的基本操作,实现顺序表的插入、 删除、查找以及求并集等运算。【实验原理】/-线性表的单链表存储结构-typedef struct LNodeElemType data;struct LNode *n ext;LNode, *Li nkList;【实验环境】实验的环境:VC+二、实验内容:【实验方案】编写主函数,调用初始化,建立线性链表的算法以及插入和删除算法。调 试运行输入数据得出结果并进行分析【实验过程】(实验步骤、记录、数据、分析)将程序输入VC6.0中tinelude CsUUb.roRdi'flnr 1RUE 1BdnFlnP

3、 FALSE DWefiUP OK 1MefllN! ElWOfl Bdcfinr INFEASIBLE -1HdPfinP nUTRFLOU -?tfpedef Int Stat>u&tgpprdrf inktypc-dc-F sti'iKt LHodrC EIprTP? ifati; strict Lmde* 4<ne*t t Lltfdrr M-inAcLis-t;Statu% L IgE Hn5;vrt_L(L iaklLa int 1, Fl*Mljjpp p)LiaAiLiFt pR£; i” aML? j-fl; hkiie(fUo-p-&g

4、t;mxi:;*j;/ return EtRHR;s 叫 IL inhLi5t)vull4E (EiieDfl L rtodr);号一尊 mtQ"?JP>A£!kt-S;rrtui'ia UK 1 Ct IllCiDK-li' DStatus LIsttflUf-L(LlikJLl5t&L ,iflt l3Elt*irp?init j;iiiiii le<P ->ne m tifrft <1-1) p -|>->npxt ;* j; lF(tCp->n*Kt)i| j>l-n return ERRURt

5、 qi-p- >nrxt; p'->next',q|->nc3ct;p-q->dAtJ; return OH;void Cri?atpList_LLinkLlst 4LIL. int inj< Ut 1; LlrkLlft p;L-LinkL15tiullD:(5izi!ci"LNa*<lt); L->hP»t-HUI L;1)0-(LinkListPMl 19LcslzHjf(LNud):占匚 antRHp->data ;> >A7Cr*dtrLiat_L 'Etatubs :El.CiM

6、_L(LinkLi.sl L P int i. ElrnTjipr al*H4.i5t p;.int Jtp-L->nrxt;j-lsMh-liDfnuii; +*j;lF(lpnpi)rB>tMFtfi ERROKie»ip-><lat-a: rp-turn TIK;void iMlnO(LinftList L ap;int j pii;£le«Tup«;"帘耳用刘!*讦索:t义谓着入惋想创离詁少亍程职窗亍);Bn;;创遷讎鼬瞩车戡Cr?ireli5t_UL, n)用耳牯!1far(p-L->Miit;ft-HU

7、LLs»-p Xient) /丿看出自己別才输入就歎毎对int f(“衙警扎拒査找第几亍元柔' ? MCMFE*” U);书兀":匸卫CetLl«n LL, 1.砒牛 U£li .E pM时F l “”初WT理)討嬉出査按迂垂.” l*t F t “谓省扎悄在第几个; a«»f < PW"ti .«r)討/柿 jSA陌位工LictInsart_LL. i.时話硝用算法2一哦k兀菲 f nr(|>-Bi->r>Pstt ;pf-HULL3lprint FC'Sdi>翻料&

8、quot;printf t"n"J ;M衬±|J&人后Hl吉果 »TMFr“;*皆 X2£ II 用亍十-scanFCd'捡i);"喻入則床元素的位萱LlstBelet9_LCL.i.e5;/调用算法 2-仙 4=ai*(p=L->npxt ;p*=NULL ;p=p->neSit) printFC'd '"->(1313);printFC-Vn11)输出删除后年的结呆>编译之后发现错误,error C2144: syntax error : missing '

9、' before type'int'。缺少分号cwFifntf1 * vikj? Uh Cif i iiaj住1 Ut t iAWifijKiftT4t«r110) S F4t41 emr C100li:«M .F Fil* FkMirrw e-n<vti*f cl.en-.1 .«*j - Z err«r(f, II懦j修改之后,在编译一次。没有错误Configuration: 1 - Uin32 DebugCompiling.*.1 ,cpp1>obj - 0 error(s), O warningCs)连接没有问

10、题ConFiguration: 1 - Win32 Debug Linking1 .exe - 0 error(s), 0 uarning(s)【实验结论】(结果)【实验小结】(收获体会)1. 实验程序应该多些注释,这样方便别人读懂你的程序。2. 程序运行过程中要多添加printf语句,提示程序员属于什么数据。3. 写程序时要细心,不要漏分号。三、指导教师评语及成绩:评语评语等级优良中各及不及格1.实验报告按时完成,字迹清楚,文字叙述流畅,逻辑性 强2.实验方案设计合理3.实验过程(实验步骤详细 ,记录完整,数据合理,分析 透彻)4实验结论正确.成绩:指导教师签名:批阅日期:附录1源程序#i

11、nclude <stdio.h>#i nclude <stdlib.h>#defi ne TRUE 1#defi ne FALSE 0#defi ne OK 1#defi ne ERROR 0#defi ne INFEASIBLE -1#defi ne OVERFLOW -2typedef int Status;typedef int ElemType;typedef struct LNodeElemType data;struct LNode *n ext;LNode, *Li nkList;Status ListI nsert_L(L in kList&L,

12、 int i, ElemType e)Lin kList p,s;int j;/p=L; j=0;while(p&&j<i-1) p=p-> next;+j; if(!p|j>i-1) return ERROR; s=(L in kList)malloc(sizeof(LNode); s->data=e;s->n ext=p->n ext;p_>n ext=s;return OK;/List In sert_LStatus ListDelete_L(LinkList&L,int i,ElemType &e) Lin kL

13、ist p,q;int j;p=L;j=O;while(p->n ext&&j<i_1)p=p_ >n ext;+j;if(!(p->next)|j>i-1) return ERROR;q=p->n ext; p_>n ext=q _>n ext;e=q->data; free(q);return OK;/ListDelete_Lvoid CreateList_L(L in kList &L, int n) int i;Lin kList p;L=(L in kList)malloc(sizeof(LNode);L-

14、> next=NULL;for(i=n;i>0;-i)p=(L in kList)malloc(sizeof(LNode);scan f("%d",& p->data);p->n ext=L->n ext;L->n ext=p;/CreateList LStatus GetElem_L(L in kList L, int i, ElemType &e)Lin kList p;int j;p=L->n ext;j=1;while(p&&j<i)p=p->n ext; +j;if(!p|j&g

15、t;i)return ERROR;e=p_>data;return OK;/GetElem_Lvoid mai n() Lin kList L,p;int i,n;ElemType e;/将要用到得元素定义prin tf("请输入你想创建多少个元素的链表");scan f("%d", &n); /输入创建链表的数据个数CreateList_L(L, n);/调用算法 2.10for(p=L-> next;p!=NULL;p=p-> next) /输出自己刚才输入的数据prin tf("%d ",p->d

16、ata);prin tf("n ”);prin tf("请输入想查找第几个元素");scan f("%d", & i); /查找元素的位置GetElem_L(L, i, e);/调用算法2.8prin tf("e=%dn",e);输出查找的元素prin tf(”请输入想在第几个元素位置前插入元素scan f("%d%d",&i,& e);/输入插入兀素的位置ListInsert_L(L, i, e);/调用算法2.9插入元素for(p=L->n ext;p!=NULL;p=p

17、->n ext)prin tf("%d ”,p->data);prin tf("n");输出插入后的结果prin tf("请输入想删除第几个元素");scan f("%d", &i);/输入删除元素的位置ListDelete_L(L,i,e);调用算法2.10for(p=L->n ext;p!=NULL;p=p->n ext)prin tf("%d ",p->data);prin tf("n");输出删除后年的结果8附录2:实验报告填写说明1 实验项目名称: 要求与实验教学大纲一致。2 实验目的:目的要明确,要抓住重点,符合实验教学大纲要求。3 实验原理:简要说明本实验项目所涉及的理论知识。4.实验环境:实验用的软、硬件环境。5 实验方案(思路、步骤和方法等):这是实验报告极其重要的内容

温馨提示

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

评论

0/150

提交评论