ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:82.26KB ,
资源ID:10830247      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10830247.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构课后作业23.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构课后作业23.docx

1、数据结构课后作业 23 实 验 报 告(示例)实验名称:数据结构与算法实验学期:2012-2013(1)实验班级:11物联姓名:所属学院:计算机学院指导教师: 二一二 年 九月 十二 日广东技术师范学院实验报告(示例)实验内容:线性表及其操作实验目的:实验地点:工业中心202实验序号:2预习内容:操作情况实验中出现的主要问题和解决情况未能在实验前对程序进行文本编辑,使得实验课时间主要花在程序编辑上,运行调试时间十分紧张,对程序算法整体的认识和功能分析没有时间进行,只是停留在将书上给定程序上机运行。后面的实验需要做好实验前程序代码的预写准备,以提高效率。结果:运行正常,输出正确,达到实验目的1

2、操作步骤进入VC+6.0:Windows开始程序 Microsoft Visual 6.0利用VC+6.0首先定义一个工程文件新建选择类型win32 Console Application选择保存路径和文件名确定选择建立空工程文件在该工程文件中加入C+源文件新建选择文件选择C源文件文件名确定编辑该源文件(输入程序代码)编译、连接(修改与调式)运行程序在Microsoft Visual 6.0 中选择组建 编译/组建(连接)/运行2算法描述:(包含函数:)/*文件名:algo2-3.cpp*/#include #include typedef char ElemType;typedef stru

3、ct DNode /*定义双链表结点类型*/ ElemType data; struct DNode *prior; /*指向前驱结点*/ struct DNode *next; /*指向后继结点*/ DLinkList;void InitList(DLinkList *&L) L=(DLinkList *)malloc(sizeof(DLinkList); /*创建头结点*/ L-prior=L-next=NULL;void DestroyList(DLinkList *&L) DLinkList *p=L,*q=p-next; while (q!=NULL) free(p); p=q; q

4、=p-next; free(p);int ListEmpty(DLinkList *L) return(L-next=NULL);int ListLength(DLinkList *L) DLinkList *p=L;int i=0; while (p-next!=NULL) i+; p=p-next; return(i);void DispList(DLinkList *L) DLinkList *p=L-next; while (p!=NULL) printf(%c,p-data); p=p-next; printf(n);int GetElem(DLinkList *L,int i,El

5、emType &e) int j=0; DLinkList *p=L; while (jnext; if (p=NULL) return 0; else e=p-data; return 1; int LocateElem(DLinkList *L,ElemType e) int n=1; DLinkList *p=L-next; while (p!=NULL & p-data!=e) n+; p=p-next; if (p=NULL) return(0); else return(n);int ListInsert(DLinkList *&L,int i,ElemType e) int j=

6、0; DLinkList *p=L,*s; while (jnext; if (p=NULL) /*未找到第i-1个结点*/ return 0; else /*找到第i-1个结点*p*/ s=(DLinkList *)malloc(sizeof(DLinkList); /*创建新结点*s*/ s-data=e; s-next=p-next; /*将*s插入到*p之后*/ if (p-next!=NULL) p-next-prior=s; s-prior=p; p-next=s; return 1; int ListDelete(DLinkList *&L,int i,ElemType &e)

7、int j=0; DLinkList *p=L,*q; while (jnext; if (p=NULL) /*未找到第i-1个结点*/ return 0; else /*找到第i-1个结点*p*/ q=p-next; /*q指向要删除的结点*/ if (q=NULL) return 0; /*不存在第i个结点*/ p-next=q-next; /*从双链表中删除*q结点*/ if (p-next!=NULL) p-next-prior=p; free(q); /*释放*q结点*/ return 1; void Sort(DLinkList *&head) /*双链表元素排序*/ DLinkL

8、ist *p=head-next,*q,*r; if (p!=NULL) /*若原双链表中有一个或以上的数据结点*/ r=p-next; /*r保存*p结点后继结点的指针*/ p-next=NULL; /*构造只含一个数据结点的有序表*/ p=r; while (p!=NULL) r=p-next; /*r保存*p结点后继结点的指针*/ q=head; while (q-next!=NULL & q-next-datadata) /*在有序表中找插入*p的前驱结点*q*/ q=q-next; p-next=q-next; /*将*p插入到*q之后*/ if (q-next!=NULL) q-n

9、ext-prior=p; q-next=p; p-prior=q; p=r; void CreateListR(DLinkList *&L,ElemType a,int n)/由含有n个元素的数组a创建带头结点的双链表L DLinkList *s,*r;int i; L=(DLinkList*)malloc(sizeof(DLinkList); /创建头结点 L-prior =L-next =NULL; r=L;/r始终指向尾结点,开始时指向头结点 for (i=0;idata=ai; r-next =s;s-prior =r;/将*s插入*r之后 r=s;/r指向*s结点 r-next =N

10、ULL;/尾结点next域置为NULLvoid main() DLinkList *h;char a5,e;int i; printf(1)初始化线性表h:n); InitList(h); printf(2)一次采用尾插法插入啊a,b,c,d,e元素n); for(i=0;i5;i+) scanf(%c,&ai); CreateListR(h,a,5); printf(3)输入双链表h:); DispList(h);printf(n); printf(4)输出双链表h长度%dn,ListLength(h); printf(5)判断双链表h是否为空:); if(ListEmpty(h) prin

11、tf(空表); else printf(不为空); printf(n); GetElem(h,3,e); printf(6)输出双链表h的第三个元素:%cn,e); printf(7)输出元素a的位置%dn,LocateElem(h,a); printf(8)在第四个元素位置上插入f元素n); ListInsert(h,4,f); printf(9)输出双链表h:); DispList(h);printf(n); printf(10)删除h的第三个元素n); ListDelete(h,3,e); printf(11)输出双链表h:); DispList(h);printf(n); printf(12)释放双链表hn);3.运行结果:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1