数据结构课程设_双向链表.docVIP

  • 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)

1亿VIP精品文档

相关文档