- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
双向链表的算法设计与实现实验报告
数学与计算科学学院
实 验 报 告
实验项目名称 双向链表的算法设计与实现
所属课程名称 __数据结构A
实 验 类 型 设计型
实 验 日 期 __
班 级 信计1402
学 号 201453100214
姓 名 俞凯烨
成 绩
一、实验概述: 【实验目的】
掌握双向链表的存储结构以及基本操作的设计和实现。
【实验原理】
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。
【实验环境】 二、实验内容: 【实验方案】
首先利用尾插法建立一个双向链表,然后,分别编写功能为实现入队操作和出队操作的子函数,最后编写main函数,并调用以上两个子函数
【实验过程】(实验步骤、记录、数据、分析)
1.打开Visual C++,新建一个源程序zw.cpp
2.调用初始化建立双向链表算法,查找算法,插入算法和删除算法
3.设计建立结果输出程序
4.操作修改源程序中的错误
5.出现11个错误,将nert改为next,还有变量未定义,
定义变量后组建调试后没有错误
6.编辑main函数
7.继续修改错误,直到错误为0
8.打开程序运行窗口,输入输出结果
9.输入5再输入33 34 35 36 37输出结果
【实验结论(结果)小结结论#includestdio.h
#includestdlib.h
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status;
typedef int ElemType;
typedef struct DuLNode{
ElemType data;
struct DuLNode *prior;
struct DuLNode *next;
}DuLNode, *DuLinkList;
void Createlist_DuL(DuLinkList L,int n){
int i;
DuLinkList p;
L=(DuLinkList)malloc(sizeof(DuLNode));
L-next=L-prior=L;
for(i=n;i0;--i){
p=(DuLinkList)malloc(sizeof(DuLNode));
scanf(%d,p-data);
p-prior=L;
p-next=L-next;
L-next-prior=p;
L-next=p;
}
}
DuLinkList GetElemP_DuL(DuLinkList L,int i){
int j;
DuLinkList p;
p=L-next;
j=1;
while(pji){
p=p-next;++j;
}
if(!p||ji)
return NULL;
return p;
}
Status ListInsert_DuL(DuLinkList L,int i,ElemType e){
DuLinkList p,s;
if(!(p=GetElemP_DuL(L,i)))
return ERROR;
if(!(s=(DuLinkList)malloc(sizeof(DuLNode))))return ERROR;
s-data=e;
s-prior=p-prior;p-prior-next=s;
s-next=p; p-prior=s;
return OK;
}
Status ListDelete_DuL(DuLinkList L,int i,ElemType e){
DuLinkList p;
if(!(p=GetElemP_DuL(L,i)))
return ERROR;
e=p-data;
p-prior-next=p-next;
p-next-prior=p-prior;
free(p); return OK;
}
void main()
{
DuLinkList p,L;
int i,n;
ElemType e;
scanf(%d,n);
Createlist_DuL(L,n);
for(p=L-next;p!=L;p=p-next)
printf(%d ,p-data);
printf(\n);
scanf(%d,i);
p=GetElemP_DuL(L,i);
printf(e=%d\
您可能关注的文档
最近下载
- 《液压机的液压系统设计》-毕业论文.doc
- 中学改扩建项目可行性研究报告.pdf
- 2022春【学霸提优大试卷】部编版五年级下册语文全套试卷.pdf
- 辽宁石油化工大学2019-2020学年《社会研究方法》期末测试试卷(附标准答案).docx
- Design Thinking, Design Theory 设计思维、设计理论.pdf
- 2023-2023学年江苏省南京市玄武区八年级(下)期末物理试卷及答案解析.pdf
- 2024年江苏中考·语文作文模拟题汇编参考答案.docx VIP
- 循证药学-精品课件 .pptx
- 《度假酒店康养服务规范》(发布稿).pdf VIP
- 使用说明书Deluxe130EQ天文望远镜-星特朗.PDF
文档评论(0)