数据结构课程设计 实验报告 心得体会 链表 c语言.pdfVIP

  • 467
  • 0
  • 约7.67千字
  • 约 14页
  • 2017-05-21 发布于浙江
  • 举报

数据结构课程设计 实验报告 心得体会 链表 c语言.pdf

数据结构课程设计 实验报告 心得体会 链表 c语言

数 据 结 构 课 程 设 计 设计题目: 两个链表的交叉合并 专业班级:08 软件工程3 班 姓名:xxxxxx 学号: 080107031123 设计时间:2010/9/25 指导教师:杨薇薇 一、 设计题目 实现两个链表的合并 设计目的 1.掌握线性链表的建立。 2.掌握线性链表的基本操作。 设计内容和要求 1. 建立两个链表A和B,链表元素个数分别为m和n个。 2. 假设元素分别为(x1,x2,…xm),和(y1,y2, …yn)。把它 们合并成一个线形表C,使得: 当m n时,C x1,y1,x2,y2,…xn,yn,…,xm 当nm时,C y1,x1,y2,x2,…ym,xm,…,yn 输出线性表C。 3. 用直接插入排序法对C进行升序排序,生成链表D,并输 出链表D。 4. 能删除指定单链表中指定位子和指定值的元素。 二、 运行环境 (软、硬件环境) 软件环境: VC++6.0编程软件,运行平台:Win32 硬件:普通个人pc机、 算法设计的思想 三、 算法的流程图 开始 Creat A 链表 Creat B 链表 Mergel(A,B) 交叉合并成 对C 排序生成D 提示输入 或 0 1 cmd 0 cmd 1 错误输入 输入将要操作的 输入将要操作的链 Cmd error 链表的名字 表的名字 正确 错误 正确 错误 删除,打印 Nameerror 删除,打印 Nameerror 打印 “over” 结束 四、 算法设计分析 这个两个链表的交叉合并算法主要运用到的是链表的基本操 作,定义节点,将链表的创建、计算链表的长度、链表A,B 的交叉 组合、链表内容升序排列、删除链表指定位置元素、删除指定的元 素等算法写成了独立函数,通过主函数调用。这样就大大精简了主 函数的操作。但主函数中很大篇幅用到了if、else语句,用以指 定链表指定结点和指定元素的删除操作,这样就使得本来很精简变 得繁琐,降低了程序的质量。所以其有优点和缺点,但需要不断的 改进,不断优化该程序。 五、 源代码 程序源代码: #includestdio.h #includestdlib.h typedef struct node //节点定义 { int data; struct node *next; } node,*li

文档评论(0)

1亿VIP精品文档

相关文档