数据结构
文章平均质量分 60
wfs1874
代码的世界应该是快乐的。
展开
-
N-ary Tree n叉树学习
N 叉树 定义二叉树是一颗以根节点开始,每个节含有不超过2个子节点的树。N 叉树,即每个节点不超过N个子节点的树。一颗三叉树:前缀树,又称为字典树,就是一个常用的N叉树。遍历N-ary Tree Preorder Traversal:给定一个 N 叉树,返回其节点值的前序遍历。例如,给定一个 3叉树 :返回其前序遍历: [1,3,5,6,2,4]。说明: 递归法很简单...原创 2018-11-19 23:37:53 · 2418 阅读 · 0 评论 -
查找算法和树归纳
查找算法二分查找:主要是利用了树查找的思想,所以时间复杂度为树的深度,树的深度性质:具有n个结点的完全二叉树的深度为[log2n] + 1,由此导出二分查找的时间复杂度为O(logn),最好的情况就是O(1),刚好就在mid位置二叉排序树查找:最好O(logn),当数据时有序状态,达到最差,称为斜树,所以最差时间复杂度为O(n)哈希查找:如果没有碰撞的时候,时间复杂度为O(...原创 2018-12-12 15:39:48 · 151 阅读 · 1 评论 -
平衡二叉树(AVL Tree)(c 语言 + 源代码)笔记
写在前面最近写东西用到了平衡二叉树,借机钻研学习一下。概念平衡二叉查找树,也被称为高度平衡树。相比于“二叉查找树”,它的特点为: AVL树中任何结点的两个子树的高度最大差为1。AVL 树的查找、插入和删除在平均和最坏情况下都是O(logn)。对AVL树插入或删除操作时,会破坏AVL树的平衡状态。为了将其重新维持平衡,需要对其进行旋转处理。旋转算法很重要!!AVL树的实现头...原创 2018-12-12 19:46:56 · 518 阅读 · 0 评论 -
平衡二叉树的C语言实现(创建、插入、查找、删除、旋转)
平衡二叉树(AVL)或者是一颗空树,或者是具有下列性质的非空二叉搜索树:(1). 任一结点的左、右子树均为AVL树;(2). 任一结点的左、右子树高度差的绝对值不超过1。对于二叉树中任一结点T,其“平衡因子”(Balance Factor, BF)定义为BF(T) = Hl-Hr,其中Hl和Hr分别为T的左、右子树的高度。有了平衡因子的定义,AVL树“任一结点左右子树高度差的绝...转载 2018-12-09 21:03:34 · 1960 阅读 · 0 评论 -
树、森林与二叉树的转换
树转换为二叉树由于二叉树是有序的,为了避免混淆,对于无序树,我们约定树中的每个结点的孩子结点按从左到右的顺序进行编号。将树转换为二叉树的步骤是:加线: 就是在所有兄弟结点之间加一条连线;抹线: 就是对树中的每个结点,只保留他与第一个孩子之间的结点之间的连线,删除他与其他孩子结点之间的连线;旋转: 就是以树的根结点为轴心,将整棵树顺时针旋转一定角度,使之结构层次分明。树旋转为二叉...转载 2019-03-05 21:38:42 · 178 阅读 · 0 评论