ICode9

精准搜索请尝试: 精确搜索
  • 基础数据结构与算法2021-05-09 19:02:32

    基础数据结构与算法 一、实战 问题1:我们程序里的数据存储方式有几种? 数组(顺序存储)链表(链式存储) 数据结构 存储形式 队列、栈 数组、链表 树 链表 图 数组(邻接矩阵) 哈希表 数组 数组:连续存储。 通过索引可以查找到对应的元素,查找快,查找的时间复

  • Java集合源码分析(五):平衡二叉树(AVL Tree)2021-05-08 23:01:38

    在上一章的文章中,我们讲到了二叉排序树,它很好的平衡了插入与查找的效率,但二叉排序树如果不平衡,那么查找效率就会大大降低,今天要讲的这个平衡二叉树就是一种解决这个问题的方法。 一、平衡二叉树的定义 平衡二叉树 是一种二叉排序树,其中每一个节点的左子树和右子树的高度差至

  • 树的基础2021-05-04 11:02:12

    树的基础 什么是树结构 树是n个节点的有限集。在任意一颗非空树中: 1. 有且仅有一个特定的被称为根的节点 2. 当 n>1 时,其余节点可分为m (m>0)个互不相交的有限集T1,T2...,TM,其中每一个集合本身又是一棵树,并且称为根的子树。 3. 除了根节点外,其他节点默认有一个父节点 结点分类

  • 二叉搜索树-AVL2021-05-03 11:03:54

    package ALV; public class ALVTreeDemo { /* 平衡二叉树:也叫平衡二叉搜索树,也叫AVL,与二叉排序树相比,可以保证查询效率(前提是一颗二叉排序树) 特点:左右两棵子树的高度差绝对值不超过一 平衡二叉树的常用实现方法有:红黑树和AVL(算法) */ public static voi

  • leecode 150. 逆波兰表达式求值(栈)2021-05-01 21:02:09

    题目描述 根据 逆波兰表示法,求表达式的值。有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 说明:整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。 示例 1: 输入:tokens = [

  • 树,二叉树,查找算法总结2021-04-30 21:02:44

    1.思维导图 2.重要概念的笔记 1.二叉树的性质: 1.在二叉树的第i层上至多有2^(i-1)个结点(i>0)。 2.深度为k的二叉树至多有2^k-1个结点(k>0)。 3.对于任意一棵二叉树,如果其叶结点为N0,而度数为2的结点总数为N2,则N0=N2+1。 4.具有n个结点的完全二叉树的深度必为 log(2n)+1。 5.对完全二叉树

  • 树、二叉树,查找算法总结2021-04-30 13:35:35

    一、思维导图 二、重要概念的笔记 二叉树: 1.非空二叉树中的叶子结点的数量等于双分支结点(度为2的结点)的数量加1。 2.二叉树的第i层上最多有(i>=1)个节点。 BST: 1.左子树上所有结点的值均小于或等于它的根结点的值。 2.右子树上所有结点的值均大于或等于它的根结点的值

  • 红黑树(个人学习记录用)2021-04-30 12:01:51

    说明:本资料中的内容及截图为本人在网络上学习时记录下的,侵权必删 1、红黑树性质 性质1:每个结点要么是黑色,要么是红色 性质2:根结点是黑色 性质3:每个叶子结点(NIL)是黑色 性质4:每个红色结点的两个子结点一定都是黑色。 不能两个红色结点相连。 性质5:任意一结点到每个叶子结点的路

  • Java数据结构和算法(十一)——红黑树2021-04-28 15:03:46

    Java数据结构和算法(十一)——红黑树  上一篇博客我们介绍了二叉搜索树,二叉搜索树对于某个节点而言,其左子树的节点关键值都小于该节点关键值,右子树的所有节点关键值都大于该节点关键值。二叉搜索树作为一种数据结构,其查找、插入和删除操作的时间复杂度都为O(logn),底数为2。但是我

  • 平衡二叉树2021-04-27 18:59:15

    平衡二叉树的定义 平衡二叉树首先是一个二叉树,其插入、删除、查找操作都在O(log n)的时间内完成。 AVL树或是为一棵空树,或是具有下列性质的非空二叉搜索树: 任一结点的左、右子树均为平衡二叉树根结点左、右子树高度差绝对值不超过1。(取值范围-1,0,1)

  • 一文看懂二叉树的概念和原理2021-04-19 12:58:18

    系列文章推荐阅读 【数据结构之顺序表】用图和代码让你搞懂顺序结构线性表 如何掌握 C 语言的一大利器——指针? 【数据结构之链表】看完这篇文章我终于搞懂链表了 【数据结构之栈】用详细图文把「栈」搞明白(原理篇) 【数据结构之队列】详细图解!在学习队列?看这一篇就够了! 【

  • 一文看懂二叉树的概念和原理2021-04-18 20:58:24

    【系列文章推荐阅读】 【数据结构之顺序表】用图和代码让你搞懂顺序结构线性表 如何掌握 C 语言的一大利器——指针? 【数据结构之链表】详解链表,看完这篇文章终于搞懂链表了 【数据结构之栈】用详细图文把「栈」搞明白(原理篇) 【数据结构之队列】详细图解!在学习队列?看这

  • 树与二叉树2021-04-18 11:05:03

    1.树的定义与性质 (1)树(tree)的概念 在数据结构中,树则是用来概括传递关系的一种数据结构。为了简化,数据结构中把树枝分叉处、树叶、树根抽象为结点(node),其中树根抽象为根结点(root),且对一棵树来说最多存在一个根结点;把树叶概括为叶子结点(leaf),且叶子结点不再延伸出新的结点;把茎干

  • 《数据结构》笔记(上)2021-04-17 18:57:23

    1.用语句的频度来分析算法的时间复杂度。 语句的频度是指语句在算法中被重复执行的次数。 2.空间复杂度是指该算法所耗费的存储空间。 算法原地工作是指算法所需的辅助空间为常量。 3.线性表是:具有相同数据类型的N个数据元素的有限序列。 线性表的顺序存储,又称为顺序表。 顺

  • 2021-04-122021-04-12 23:01:42

    深入学习二叉树(一) 二叉树基础 前言 树是数据结构中的重中之重,尤其以各类二叉树为学习的难点。一直以来,对于树的掌握都是模棱两可的状态,现在希望通过写一个关于二叉树的专题系列。在学习与总结的同时更加深入的了解掌握二叉树。本系列文章将着重介绍一般二叉树、完全二叉

  • 红黑树源码讲解之手写红黑树2021-03-25 16:57:07

    红黑树源码讲解之手写红黑树 树入门 什么是树 树(tree)是一种抽象数据类型(ADT),用来模拟具有树状结构性质的数据集合。它是由n(n>0)个有限节点通过连接它们的边组成一个具有层次关系的集合。 把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 树有很多种

  • 红黑树原理与实现2021-03-21 20:30:50

    前言:本章主要是讲述数据结构中的树,主要从基本的树结构到二叉搜索树,然后再对红黑树的原理与实现 目录 1、什么是树 2、树结构常用术语 3、二叉搜索树 4、红黑树原理 5、代码实现 6、红黑树的应用 总结 1、什么是树 树(tree)是一种抽象数据类型(ADT),用来模拟具有树状结构性质的数据

  • 面试题9:二叉树的下一个节点2021-03-15 22:03:19

    目录1 题目2 思路3 代码示例 1 题目 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 2 思路 以上图中的树为例,其中序遍历序列是:d,b,h,e,i,a,f,c,g。 找一个结点在中序遍历序列中的下一个结

  • 平衡二叉树(AVL树)2021-03-12 23:01:34

    平衡二叉树(AVL树) 平衡二叉树简介:   平衡树(Balance Tree,BT) 指的是,任意节点的子树的高度差都小于等于1。常见的符合平衡树的有,B树(多路平衡搜索树)、AVL树(二叉平衡搜索树)等。   具有以下特点:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1, 并且左右两个子树都是-

  • Java集合 | HasnMap之红黑树2021-03-04 23:59:37

    HashMap中红黑树详解 红黑树基础讲解定义比较与总结 操作获取/查找插入删除 总结 HashMap中的红黑树操作用法源码解析 红黑树基础讲解 定义 红黑树是一种自平衡二叉查找树,是一种特殊的平衡二叉树,在进行插入和删除操作时会通过特定操作来保持二叉查找树的平衡,从而获取良

  • 剑指 Offer 68 - I. 二叉搜索树的最近公共祖先2021-03-02 20:03:48

    题目 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉搜索树: root

  • 【java】剑指offer33_二叉搜索树的后序遍历序列2021-02-18 11:34:11

    题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 参考以下这颗二叉搜索树:      5     / \    2   6   / \  1   3 示例 1: 输入: [1,6,3,2,5] 输出: false 示

  • 二叉排序树,平衡二叉树,哈夫曼树——增删改查2021-02-17 21:31:44

    二叉排序树 Binary Search Tree,二叉查找树——左子树所有节点关键字均小于根节点;右子树的所有节点关键字均大于根节点;左、右子树均为二叉排序书;节点本身的关键字唯一。 中序遍历序列是递增的有序序列 查找 (1)二叉树非空的时,查找根节点,若相等则查找成功 (2)若不等,则当小于根节点

  • 剑指 Offer 68 - II. 二叉树的最近公共祖先2021-02-11 10:04:49

    /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: TreeNode* lowestCommonAncestor

  • 101. Symmetric Tree2021-02-09 19:35:41

    仅供自己学习   思路: 递归:判断是否镜像,那就每次用左子树的左子树与右子树的右子树 and 左子树的右子树和右子树的左子树进行是否相等的判断即可。因此我们可以写一个比较函数,传入的root就是前面所说的几种情况。 比较函数什么时候返回true什么时候返回false呢,如果我们在一条路下

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有