数据结构实验报告_23.docVIP

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中国地质大学江城学院 数据结构课内实验报告 姓 名 班级学号 指导教师 2012年 月日 目 录 TOC \o 1-4 \h \z \u HYPERLINK 实验一 线性表 4 HYPERLINK 1 实验内容 4 HYPERLINK 2 算法思想描述 4 HYPERLINK 3 操作算法的实现 4 HYPERLINK 4 主测试程序 7 HYPERLINK 5 运行结果 8 HYPERLINK 实验二 堆栈和队列 8 HYPERLINK 1 实验内容 8 HYPERLINK 2 算法思想描述 8 HYPERLINK 3 操作算法的实现 8 HYPERLINK 4 主测试程序 10 HYPERLINK 5 运行结果 10 HYPERLINK 实验三 串 10 HYPERLINK 1 实验内容 10 HYPERLINK 2 算法思想描述 10 HYPERLINK 3 操作算法的实现 11 HYPERLINK 4 主测试程序 12 HYPERLINK 5 运行结果 12 HYPERLINK 实验四 数组 12 HYPERLINK 1 实验内容 12 HYPERLINK 2 算法思想描述 12 HYPERLINK 3 操作算法的实现 13 HYPERLINK 4 主测试程序 16 HYPERLINK 5 运行结果 17 实验一 线性表 1 实验内容 编写不带头结点单链表的初始化、插入、删除和输出操作算法。 2 算法思想描述 插入:在不设头结点的单链线性表L中第i个位置之前插入元素e,计数器初值为1,p指向第1个结点,i值不合法,生成新结点,以下将其插入L中,给s的data域赋值e,新结点指向原第1个结点,L指向新结点(改变L),插在表的其余处,寻找第i-1个结点,p指向下一个结点大于表长+1,插入失败。新结点指向原第i个结点,原第i-1个结点指向新结点,插入成功。删除:在不设头结点的单链线性表L中,删除第i个元素,并由e返回其值,计数器初值为1,p指向第1个结点,表L空,删除失败,删除第1个结点,L由第2个结点开始(改变L),将待删结点的值赋给e,删除并释放第1个结点,寻找第i个结点,并令p指向其前驱,计数器+1,P指向下一个位置,删除位置不合理,删除失败。q指向待删除结点,待删结点的前驱指向待删结点的后继,将待删结点的值赋给e,释放待删结点,删除成功。 3 操作算法的实现 #includestdio.h #includestdlib.h struct clist { int num; struct clist *next; }; typedef struct clist node; typedef node *clink; void Printlist(clink head) { clink ptr; if(head==NULL) { printf(\n); } else { ptr=head; do { ptr=ptr-next; printf([%d],ptr-num); }while(ptr!=head); printf(\n); } } clink Insertnode(clink head,clink ptr,int x) { clink newnode; newnode=(clink)malloc(sizeof(node)); if(!newnode) { return NULL; } newnode-num=x; newnode-next=NULL; if(head==NULL) { head=newnode; newnode-next=head; } else { if(ptr==NULL) { newnode-next=head-next; head-next=newnode; } else { newnode-next=head-next-next; head-next-next=newnode; } } return head; } clink Findnode(clink head,int x) { clink ptr,ptr1; ptr1=NULL; if(head==NULL) { return NULL; } else { ptr=head; do { if(ptr-num==x) { ptr1=ptr; break; } ptr=ptr-next; }while(ptr!=head); return ptr1; } } clink Deletnode(clink head,clink ptr) { clink ptr1; pt

文档评论(0)

+ 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档