- 16
- 0
- 约1.25万字
- 约 11页
- 2016-10-19 发布于贵州
- 举报
数据结构课程设_双向链表
《数据结构》课程设计
实验报告
题 目 双向链表
学 院
专 业 计算机科学与技术
班 级
学 号
学生姓名
指导教师
编写日期 2010-7-16
目录
问题分析……………………………………………….3
1.1基本要求…………………………………………………..3
1.2分析过程…………………………………………………..3
数据结构描述………………………………………….3
算法设计……………………………………………….4
3.1算法1:双向链表的建立………………………………..4
3.2算法2:双向链表的查找…………………………………4
3.3算法3:双向链表的插入………………………………..5
3.4算法4:双向链表的删除………………………………..5
程序清单………………………………………………6
程序运行结果…………………………………………10
总结……………………………………………………11
1.问题分析
1.1【基本要求】【】#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,elemtype e) /* 查找双线链表中第一个值为e的结点位置*/
{
p=l-next; /* p指向第一个结点 */
j=1; /* j表示结点位置 */
while((p-data!=e)p){
p=p-next;
++j;
} /* 寻找第一个值为e的结点位置 */
if(!p) return -1;
else ret
原创力文档

文档评论(0)