摘要:
什么是优先队列? 优先队列也是一种队列,只不过不同的是,优先队列的出队顺序是按照优先级来的;在有些情况下,可能需要找到元素集合中的最小或者最大元素,可以利用优先队列ADT来完成操作,优先队列ADT是一种数据结构,它支持插入和删除最小值操作(返回并删除最小元素)或删除最大值操作(返回并删除最大元素); 阅读全文
摘要:
一、线索二叉树的原理 通过考察各种二叉链表,不管儿叉树的形态如何,空链域的个数总是多过非空链域的个数。 n各结点的二叉链表共有2n个链域,非空链域为n-1个,但其中的空链域却有n+1个。如下图所示。 (除根结点以外,所有结点都有一共指向它的结点,所有非空链域为n-1,空链域为n+1) 因此,提出了一 阅读全文
摘要:
二叉树的遍历-链式存储 利用指针域我们便可以完美的存储非完全二叉树,如下: 结构体 struct TreeNode { TreeNode*left; TreeNode*right; char data; }; typedef TreeNode* BTree; 建树 BTree CreateBTree 阅读全文
摘要:
二叉树存储结构 存储结构: ① 顺序存储结构 ② 链式存储结构 顺寻存储结构 结构体 typedef int DataType ; struct SeqBinTree{ int MAXNUM; int n; DataType *nodelist; }; typedef SeqBinTree* PSe 阅读全文
摘要:
树的概念 之前介绍的所有的数据结构都是线性存储结构。本章所介绍的树结构是一种非线性存储结构,存储的是具有“一对多”关系的数据元素的集合。 图 1(A) 是使用树结构存储的集合 {A,B,C,D,E,F,G,H,I,J,K,L,M} 的示意图。对于数据 A 来说,和数据 B、C、D 有关系;对于数据 阅读全文
摘要:
KMP字符串匹配算法 算法流程 (1) 首先,主串"BBC ABCDAB ABCDABCDABDE"的第一个字符与模式串"ABCDABD"的第一个字符,进行比较。因为 B 与 A 不匹配,所以模式串后移一位。 (2) 因为 B 与 A 又不匹配,模式串再往后移。 (3) 就这样,直到主串有一个字符, 阅读全文