数据结构
jiye111
这个作者很懒,什么都没留下…
展开
-
数据结构 二叉树简介
树的特点N个节点构成的有限集合除了根节点以外的成为原来树的子树子树是不相交的除了根节点外,每个节点有些只有一个父节点一颗N个节点的书有N-1条边 相关名词:结点的度:结点的子树个数树的度:树的所有节点中最大的度数 二叉树采用儿子兄弟标志法的树,即有一个左指针指向儿子,一个右指针指向兄弟,可以减少空间的浪费特殊二叉树斜二叉树完美二叉...原创 2018-09-19 13:45:05 · 342 阅读 · 0 评论 -
数据结构 二叉树的前,中序遍历法(递归与非递归两种实现)
先序遍历:1.访问根节点2.先序遍历其左子树3.先序遍历其右子树记忆:根左右例子:代码实现:1.首先创建一棵树 //生成树 public static TreeNode initTree(){ TreeNode G = new TreeNode("G", null, null); TreeNode H = new Tre...原创 2018-09-19 14:26:39 · 228 阅读 · 0 评论 -
数据结构 二叉树的后序,层序遍历法(递归与非递归两种实现)
树的生成见上一篇博客后序遍历:1.遍历左边节点,到左叶子节点后返回父节点,切换到右子树2.遍历右边结点,遍历完后回到父节点记忆:左右根例子(注意,这里的树和我创建的树不一样!!!):代码实现:后序遍历的递归实现 public static void postOrderRecursion(TreeNode T) { if (T == null) ...原创 2018-09-21 22:40:12 · 232 阅读 · 0 评论 -
二叉查找树的删除结点操作
二叉查找树:二叉查找树(Binary Search Tree),(又二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。例子:结点的删除操作:分三种情况讨论:结点为叶子结点时,直接删除,把父节点...原创 2018-09-22 14:23:41 · 545 阅读 · 0 评论 -
数据结构 最大堆的实现
定义:最大堆要求根节点的关键字既大于或等于左子树的关键字值,又大于或等于右子树的关键字值。 APIAPI代码实现api分析:最大堆为完全二叉树,index(子节点)/2=index(父节点)操作中采用了哨兵,所以对应元素下标即为堆中的位置(从1开始)insert():插入时插到末尾,通过与父节点的比较,进行上浮操作deleteMax(MaxHeap H)...原创 2018-09-29 09:29:54 · 892 阅读 · 0 评论