随笔分类 - 数据结构
摘要:定义 无回路的无向图称为树图。 最小生成树(Minimum Spanning Tree,MST),一个有n个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有n个结点,并且有保持图连通的最少的边。 最小生成树可以用Kruskal(克鲁斯卡尔)算法或Prim(普里姆)算法求出。 思路 Pri
阅读全文
摘要:定义 无回路的无向图称为树图。 最小生成树(Minimum Spanning Tree,MST),一个有n个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有n个结点,并且有保持图连通的最少的边。 最小生成树可以用Kruskal(克鲁斯卡尔)算法或Prim(普里姆)算法求出。 思路 Kru
阅读全文
摘要:问题 最优二叉搜索树(Optimal Binary Search Tree,Optimal BST)问题,形式化定义:给定一个n个不同关键字的已排序的序列K=<k1, k2, ..., kn>(k1<k2<...<kn),用这些关键字构造一棵二叉搜索树 —— 对每个关键字ki,都有一个概率pi表示其
阅读全文
摘要:二叉搜索树(Binary Search Tree,BST),又称为二叉搜索树,二叉排序树,是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。 基本方法有: 查找:
阅读全文
摘要:队列,是只能通过访问它的一端来实现数据存储和检索的一种线性数据结构。对于队列的修改要按照先进先出的原则进行,因此,队列又被称为先进先出(FIFO)的线性表。 链队,队列的链式存储。 基本方法有: 初始化:创建一个空的队列。 判断队列是否为空:如果队列为空,则返回”真“,否则返回”假“。 入队:将元素
阅读全文
摘要:队列,是只能通过访问它的一端来实现数据存储和检索的一种线性数据结构。对于队列的修改要按照先进先出的原则进行,因此,队列又被称为先进先出(FIFO)的线性表。 顺序队,队列的顺序结构。 基本方法有: 初始化:创建一个空的队列。 判断队列是否为空:如果队列为空,则返回”真“,否则返回”假“。 入队:将元
阅读全文
摘要:栈,是只能通过访问它的一端来实现数据存储和检索的一种线性数据结构。对于栈的修改要按照先进后出的原则进行,因此,栈又被称为后进先出(LIFO)的线性表。 链栈,用链表作为存储结构的栈 —— 链表的头指针就是栈顶指针。 基本方法有: 初始化:创建一个空栈。 判断栈是否为空:如果栈为空,返回“真”,否则返
阅读全文
摘要:栈,是只能通过访问它的一端来实现数据存储和检索的一种线性数据结构。对于栈的修改要按照先进后出的原则进行,因此,栈又被称为后进先出(LIFO)的线性表。 顺序栈,是用一组地址连续的存储单元存储自栈顶到栈底的数据元素。 基本方法有: 初始化:创建一个空栈。 判断栈是否为空:如果栈为空,返回“真”,否则返
阅读全文
摘要:线性表是最简单、基本和常用的一种线性结构。 一个线性表是n个元素的有限序列,通常表示为(a1, a2, ... , an),非空线性表的特点如下: 存在唯一的一个”第一个“的元素。 存在唯一的一个”最后一个“的元素。 除第一个元素外,序列中的每个元素均只有一个直接前驱。 除最后一个元素外,序列中的每
阅读全文
摘要:线性表,是最简单、基本和常用的一种线性结构。 一个线性表是n个元素的有限序列,通常表示为(a1, a2, ... , an),非空线性表的特点如下: 存在唯一的一个”第一个“的元素。 存在唯一的一个”最后一个“的元素。 除第一个元素外,序列中的每个元素均只有一个直接前驱。 除最后一个元素外,序列中的
阅读全文