- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
东华理工大学数据结构课程设计实验报告
计算机信息管理专业
PAGE
PAGE 1
《数据结构》课程设计实验报告
之双向链表的相关操作
专 业 : 计算机信息管理
姓 名 : 陶鹏鹏
学 号 : 201140130241
教 师 : 吴志强
时间:2013.1.4
目录
问题分析…………………………………………….….1
1.1基本要求…………………………………………………...1
1.2分析过程…………………………………………………...1
数据结构描述…………………………………………..1
算法设计………………………………………………..2
3.1算法1:双向链表的建立………………………………...2
3.2算法2:双向链表的查找……………………………….…2
3.3算法3:双向链表的插入………………………………...3
3.4算法4:双向链表的删除………………………………...3
程序具体步骤…………………………………..……4
程序运行结果………………………………………...10
总结……………………………………………….…..10
PAGE 1
PAGE 1
1.问题分析
1.1【基本要求】:建立双向链表,并进行插入,查找,删除等操作。
1.2【分析过程】:先通过创建函数建立双向链表,由文本文件提供数据。可以调用查找函数,查找与e值相同的结点是否存在;也可以通过插入函数,在第i个结点前插入值为e的结点,并且调节指针的变化;也可以调用删除函数,删除第i个结点,调节好指针,最后通过保存函数保留数据到文本文件中。
2.数据结构描述
#includeiostream
#includestdio.h
using namespace std;
typedef struct dulnode{
int data;
struct dulnode *prior;
struct dulnode *next;
}dulnode,*dulinklist;
3.算法设计
3.1算法1:创建双向链表
status create_dul(dulinklist l) /*利用尾插法建立头带头结点的双向链表 */
{
l=(dulinklist)malloc(sizeof(dulnode)); /* 生成头结点 */
l-prior=NULL;
l-next=NULL; /* 头结点的指针域初始值为空 */
l-data=-1;
q=l; /* 尾指针初始指向头结点 */
FILE* fp; /* 定义文件指针的形式 */
if((fp=fopen(F:\\test1.txt,r+))==NULL); /* 打开文本文件 */
{
printf(cannot open file!\n);
exit(0);
}
int n;
fscanf(fp,%d,n);
for(i=0;in;i++);
{
p = (dulinklist)malloc(sizeof(dulnode));
fscanf(fp,%d,p-data); /* 在文件读取结点的数据 */
p-next=NULL; /* 新结点指针域为空 */
p-prior=q;
q-next=p; /* 尾结点指针域指向新结点 */
q=p; /* q指针后移,始终指向尾指针 */
}
fclose(fp); /* 关闭文本文件 */
3.2算法2:双向链表的查找
stadus locateelem_dul(dulinklist l,ele
原创力文档


文档评论(0)