OpenI 启智社区

启智社区,确实给力

当前位置:首页 > 学习 > 实训 >

数据结构与算法

数据结构与算法

  • 来源:西南石油大学
  • 章节:9 单元:31

  • 岳静

  • 王杨

  • 朱小梅

  • 伍敏

  • 刘影

  • 张全

  • 龙倩欣
进入实训课程

课程简介:

《数据结构》是计算机科学与技术、软件工程等计算机相关专业的一门重要的专业基础课程。
《数据结构》简要的说,是研究数据的关系学科,主要介绍和讨论数据基于问题的逻辑结构、基于内存物理存储结构,和基于结构的数据各种操作的实现及分析。数据结构的不仅是程序设计的基础,也是设计和实现编译程序、操作系统、数据系统及其它系统程序以及各种大型应用程序的重要基础。

课程介绍几种逻辑结构的数据,分析它们的特点,以及在计算机中的存储方法,和常规操作的实现。课程以C语言作为算法的描述工具,强化数据结构基本知识和面向对象程序设计基本能力的双基训练。为后续计算机相关的专业课程的学习打下坚实的基础。通过这门课程的学习,使学生在软件设计的过程中,能够正确分析数据的结构、并合理地选择数据的存储方式,设计科学操作算法,从而提高软件整体质量。




课程章节:

第一章 线性表

线性表是一种最简单的数据结构,应用场合也最多。在线性表中,数据元素间是一对一的前后关联关系,即数据元素排列为一条“直线”。在所有数据元素中,有且仅有一个元素无前驱,它是线性表的起点;有且仅有一个元素无后继,它是线性表的终点;除此之外其余元素有且仅有一个前驱和一个后继。 线性表的存储结构主要有顺序表和链表。顺序表是线性表的顺序存储结构,通常用一位数组来实现。链表是线性表的链式存储结构,最简单的单链表结点由数据域和指针域构成,其中指针域指向下一个结点。这两种存储方式各有优缺点,适合于不同的场合。

第二章 栈和队列

栈和队列两种重要的线性结构,是学好数据结构的前提。栈是最后插入的元素最先出来,即后进先出;队列是最先插入的元素最先出来,即先进先出。该部分将会学习栈和队列中的经典问题。

第三章 串

该部分讲解了串类型的定义,串的表示和实现,串的模式匹配算法,文本编辑,建立词索引表,数组和广义表等问题。

第四章 树和二叉树

该部分训练树形数据结构和图数据结构,树是被广泛使用的抽象数据结构(ADT)。 可以将其递归定义为节点的集合,其中每个节点都包含一个值,该值从根节点开始,到对其他节点(子级)的引用列表,但有一个约束,即没有来自该节点的引用称为叶节点。

第五章 图

图是一组对象以及对象之间的关系或链接的数学表示。 我们将对象表示为图中的节点或顶点,并将顶点之间的关系表示为边或弧。 因此,我们可以定义图是由顶点V和边E组成的。这些边可以是有向的也可以是无向的。

第六章 查找

该部分讲解的是顺序表、静态树表、和哈希表。查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找。

第七章 排序

该部分讲解的是排序方法;排序是将一批无序的记录(数据)重新排列成按关键字有序的记录序列的过程;本章节讲解的是内部排序和外部排序两大类。

第八章 算法

无论是计算科学还是计算实践,算法都在其中扮演着重要角色。根据算法设计技术的不同,常见的算法设计策略有减治法、分治法、变治法、动态规划、分支界限等。理解与掌握常见算法的设计思路与应用实例,能帮助我们为编写良好的计算机程序打下坚实基础,同时也有助于对其他学科的理解。

第九章 案例

根据以上的一些知识点,我们给各位学者准备了两个简单的综合棋类案例供大家学习!