线性表是一种最简单的数据结构,应用场合也最多。在线性表中,数据元素间是一对一的前后关联关系,即数据元素排列为一条“直线”。在所有数据元素中,有且仅有一个元素无前驱,它是线性表的起点;有且仅有一个元素无后继,它是线性表的终点;除此之外其余元素有且仅有一个前驱和一个后继。 线性表的存储结构主要有顺序表和链表。顺序表是线性表的顺序存储结构,通常用一位数组来实现。链表是线性表的链式存储结构,最简单的单链表结点由数据域和指针域构成,其中指针域指向下一个结点。这两种存储方式各有优缺点,适合于不同的场合。
栈和队列两种重要的线性结构,是学好数据结构的前提。栈是最后插入的元素最先出来,即后进先出;队列是最先插入的元素最先出来,即先进先出。该部分将会学习栈和队列中的经典问题。
该部分讲解了串类型的定义,串的表示和实现,串的模式匹配算法,文本编辑,建立词索引表,数组和广义表等问题。
该部分训练树形数据结构和图数据结构,树是被广泛使用的抽象数据结构(ADT)。 可以将其递归定义为节点的集合,其中每个节点都包含一个值,该值从根节点开始,到对其他节点(子级)的引用列表,但有一个约束,即没有来自该节点的引用称为叶节点。
图是一组对象以及对象之间的关系或链接的数学表示。 我们将对象表示为图中的节点或顶点,并将顶点之间的关系表示为边或弧。 因此,我们可以定义图是由顶点V和边E组成的。这些边可以是有向的也可以是无向的。
该部分讲解的是顺序表、静态树表、和哈希表。查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找。
该部分讲解的是排序方法;排序是将一批无序的记录(数据)重新排列成按关键字有序的记录序列的过程;本章节讲解的是内部排序和外部排序两大类。
无论是计算科学还是计算实践,算法都在其中扮演着重要角色。根据算法设计技术的不同,常见的算法设计策略有减治法、分治法、变治法、动态规划、分支界限等。理解与掌握常见算法的设计思路与应用实例,能帮助我们为编写良好的计算机程序打下坚实基础,同时也有助于对其他学科的理解。
根据以上的一些知识点,我们给各位学者准备了两个简单的综合棋类案例供大家学习!