1、 课 程 设 计 设计题目:设计题目: 数据结构与算法数据结构与算法课程设计课程设计 I 摘 要 20 世纪末,随着计算机科学的发展,数据结构已经成为重要的一部分。一个好的算法不 仅能提高计算机的执行效率,还能增加计算机稳定性。 数据结构是高等职业教育计算机专 业的一门非常重要的专业基础课程,旨在使学生了解数据的特性,学会数据组织方法和现实 世界中的问题在计算机内部的表示方法,好的算法在于我们人文思想的设计! 数据结构作 为一门专业基础课,其教学要求是:学会分析研究计算机所处理的数据结构的特性,以便为 应用中涉及的数据选择适当的逻辑结构、存储结构及其相应的算法,并初步掌握算法的时间 和空间分析
2、技术。因此,在本书的编排及选题设计中,主要从上述几方面入手,精心挑选出 十多个实际应用问题,并通过解决这些问题的应用程序的设计、开发与实现过程,带领读者 一步一步地掌握数据结构课程的精华。要求重点掌握线性表、二叉树和树、图、数组等结构 在实践中的应用以及相关算法的设计。其中,线性表是基础,也是数据结构课程的核心。树 和图的应用是设计中的难点和重点。本次设计的目的是基于 1.设 L 为单链表的头结点地址, 请写一算法,将链表中数据域值最小的那个链结点移到链表的最前面。要求:不得额外申请 新的链结点。2. 二叉树用二叉链表存储,写一个算法将二叉树中的叶子结点按从右至左的顺 序建立一个单链表。两个问
3、题来对本学期所学数据结构的算法巩固和加深。 关键词 二叉树 单链表 先序遍历 叶子节点 II 目 录 摘 要 . I 第 1 章 绪 论 . 1 第 2 章 C 语言的运行环境及运行步骤 . 2 2.1 C 语言的起源语言的起源 2 2.2 C 语言的特点语言的特点 . 2 2.3 C 语言的运行环境语言的运行环境 2 2.4 Visual C+6.0 的运行步骤 3 第 3 章 系统分析与设计 5 3.1 单链表单链表 5 3.1.1 主函数代码及流程图如图 3.1 所示 5 3.1.2 创建链表代码及流程图如图 3.2 所示 6 3.1.3 把链表中最小值移动到前端代码及流程图如图 3.3
4、 所示 7 3.1.4 输出单链表代码及流程图如图 3.4 所示 8 3.2 二叉树二叉树 8 3.2.1 主函数代码及流程图如图 3.5 所示 9 3.2.2 创建二叉树代码及流程图如图 3.6 所示 10 3.2.3 查找叶子节点代码及流程图如图 3.7 所示 11 3.2.4 把叶子结点写入单链表代码及流程图如图 3.8 所示 12 3.2.5 从链表中输出代码及流程图如图 3.9 所示 13 第 4 章 系统实现 14 4.1 单链表问题实现单链表问题实现 14 4.2 二叉树问题实现二叉树问题实现 14 结 论 .16 致 谢 .17 参考文献 .18 1 第 1 章 绪 论 近年来
5、,我国计算机应用,计算机软件和电子类相关专业的人才培养,取得了长足的进 展,每年都有数十万人,但是这些毕业生走进企业、公司、政府机构或研究机构单位后,往 往深刻地感受到缺乏实际开发设计项目的经验,不善于运用所学理论,对知识的把握缺乏融 汇贯通的能力。本次设计是对大学里所学专业课数据结构一个综合性考察,已是一个小小的 实习。 本次课程设计只要文绕两个问题来展开设计:1.设 L 为单链表的头结点地址,请写一算 法,将链表中数据域值最小的那个链结点移到链表的最前面。要求:不得额外申请新的链结 点。2. 二叉树用二叉链表存储,写一个算法将二叉树中的叶子结点按从右至左的顺序建立一 个单链表。两个问题来对
6、本学期所学数据结构的算法巩固和加深。对于问题 1 来说,建立一 个单链表,找到其中的最小值并移动到最前端,问题中说不得申请新结点,是为了让我们能 灵活的掌握单链表的插入和删除。对于问题 2,是二叉树问题,解决这个问题,是让我们能 够更好地理解二叉树的概念,以及二叉树的便历查找,二叉树叶子节点的概念,二叉树的递 归调用查找! 在课程设计前,只有通过对课本的反复复习,才能有一个好的设计思想。这次设计的题 目是二叉树问题和单链表问题。对于课本中没有一个完整的程序,这对于一个初学者是一件 非常头痛的事情,英文从来没有自己独立成功的完成一个程序,于是借大量数据结构方面的 数,来巩固一下自己的实战经验。对于一个小的软件先有一个好的设计思想,才会在以后的 路上有一个好的工作经验。 本次设计的目的: 1. 让我们进一步对所学知识灵活运用,并结合实际中。 2. 让我们掌握软件设计基本内容和设计方法,并提高我们规范化设计软件的能力。 3. 提高我们分析问题,解决问题的能力。提高学生使用计算机工具书的能力,提高学生 在实际中找经验。 4. 让我们在以后的工作中有一个好的工作意识和团队