随笔分类 - 数据结构
摘要:图的邻接表表示及其BFS遍历 有下面这张图: 假设该图为有向图,边的指向均为小序号指向大序号。那么对该图的BFS遍历如下(假设从序号0的节点开始遍历): 遍历结果应为: BFS遍历类似于树的层序遍历,需要用到队列。下面是程序代码: 1.队列定义和相关操作 文件1 queue.h 文件2 queue.
阅读全文
摘要:图的邻接表表示及其遍历 1.图的结构定义 2.图的建立 3.图的DFS遍历 假设有下面这张图,这个图包含两个连通图。 输入如下: 程序运行结果: 证明程序是正确的。 完整程序代码参见: https://github.com/zkangHUST/DataStructure
阅读全文
摘要:1.基本思路 层序遍历的基本思路就是, 1.根节点入队列。 2.根节点出队,同时将根节点左儿子和右儿子入队 3.结点出队,同时将该节点的左儿子和右儿子入队 4.重复3直到队列为空 2.算法实现 void layerprint(struct TreeNode r) { struct queue q1;
阅读全文
摘要:二叉树总结 1. 二叉树的重要性质 一个二叉树的第i层最多有2i−1个结点(i>=1) 深度为k的二叉树最多有2k−1个结点(k>=1) 对于任何非空二叉树有n0个叶结点,n2个度为2的结点,那么总有关系: n0=n2+1 2.对二叉树的操作 Boolean IsEmpty(BinTree BT);
阅读全文
摘要:二分法 例:假设有一个容量为n+1开始的数组,从小到大存储了n个数(从下标1开始存储)。给定给定数m,求出数组中值为m的元素的下标,如果未找到则返回0。 分析: 以11个数进行分析。 首先令左边界为left=1,右边界为right=11,mid=(left+right)/2 即为6,判断m跟num[
阅读全文