此篇皆为leetcode、牛客中的简单题型和二叉树基础操作,无需做过多讲解,仅付最优解。有需要的小伙伴直接私信我~目录1.二叉树的节点个数2.二叉树叶子节点个数3.二叉树第K层节点个数4.查找值为X的节点5.leetcode——二叉树的最大深度6.leetcode——单值二叉树7.leetcode——相同的树8.二叉树的前序遍历9.二叉树的中序遍历 10.二叉树的后序遍历 11.二叉树的层序遍历12.leetcode——另一棵树的子树13.二叉树的构建及遍历 14.leetcode——对称二叉树1.二叉树的节点个数intBinaryTreeSize(BTNode*root){ returnr
今天继续来分享的是二叉树,我们废话不多说,直接来看下面的几个接口函数,然后我们把他们实现,我们就掌握二叉树的二分之一(今天粉丝破千了,属实有点高兴了)。typedefcharBTDataType;typedefstructBinaryTreeNode{ BTDataTypedata; structBinaryTreeNode*left; structBinaryTreeNode*right;}BTNode;//通过前序遍历的数组"ABD##E#H##CF##G##"构建二叉树BTNode*BinaryTreeCreate(BTDataType*a,intn,int*pi);//二叉树销毁voi
🎇个人主页:Ice_Sugar_7🎇所属专栏:初阶数据结构🎇欢迎点赞收藏加关注哦!文章目录🍉树🍉二叉树🍌特殊二叉树🍌二叉树的性质🍌存储结构🍉堆🍌堆的结构🍌插入🥝向上调整算法🫐时间复杂度分析🍌删除🥝向下调整算法🫐时间复杂度分析🍌堆的创建(堆的初始化)🍌堆排序🍌topk问题🍉写在最后🍉树●树是一种非线性的数据结构,它是由n(n>=0)个结点组成,具有层次关系●有一个特殊的结点,称为根结点,根节点没有前驱结点●除根节点外,其余结点被分成M(M>0)个互不相交的集合,每个集合是一棵子树🍉二叉树二叉树一个非空结点的子树为空或者至多两个子树(左子树和右子树)从这个图可以看出:二叉树不存在度大于2的结点二叉
二叉树顺序结构1.二叉树的顺序结构及实现1.1二叉树的顺序结构1.2堆的概念及结构1.3堆的实现1.3.1向上调整1.3.2向下调整1.3.3交换函数1.3.4打印1.3.5初始化1.3.6销毁1.3.7插入1.3.8删除1.3.9获得堆顶元素1.3.10判断是否为空1.3.6堆的代码实现1.3.2堆的创建1.3.3建堆时间复杂度1.4堆的应用1.4.1堆排序1.二叉树的顺序结构及实现1.1二叉树的顺序结构普通的二叉树是不适合用数组来存储的,因为可能会存在大量的空间浪费。而完全二叉树更适合使用顺序结构存储。现实中我们通常把堆(一种二叉树)使用顺序结构的数组来存储,需要注意的是这里的堆和操作系统
目录一.树的概念二.树中重要的概念三.二叉树的概念满二叉树完全二叉树四.二叉树的性质五.二叉树的存储六.二叉树的遍历前序遍历中序遍历 后序遍历 一.树的概念树是一种非线性数据结构,它由节点和边组成。树的每个节点可以有零个或多个子节点,其中一个节点被指定为根节点。树的节点之间通过边连接。另外,树形结构中,子树之间不能有交集,否则就不是树形结构。树的结构具有层级关系,根节点位于最顶层,而叶节点位于最底层。树的形状可以类比于现实生活中的树,根节点相当于树的根部,而分支和叶子节点则相当于树的枝干和叶子。在计算机科学中,树被广泛用于各种应用,例如文件系统、数据库索引、编译器中的抽象语法树等。树的常见特点
目录树树的概念树的相关概念树的表示树在实际中的运用(表示文件系统的目录树结构)二叉树二叉树的概念特殊的二叉树二叉树的性质二叉树的存储结构二叉树的顺序结构及实现二叉树的顺序结构堆的概念及结构堆的实现堆向下调整算法堆的向上调整算法堆的创建堆的删除堆的实现二叉树的链式结构及实现 二叉树的遍历前序、中序、后序遍历层序遍历二叉树的高度(深度)二叉树的结点个数二叉树第K层结点的个数二叉树的创建和销毁二叉树的创建二叉树的销毁树树的概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合(n=0时,称为空树),把它叫做树是因为它看起来像一颗倒挂的树,也就是说根朝上,而叶朝下的。有
目录二叉树的定义二叉树具体的五种基本形态1.空树2.只有一个节点3.有左子树,但右子树为空4.有右子树,但左子树为空 5.左右两子树都不为空特殊二叉树斜二叉树满二叉树 完全二叉树二叉树的几个重要性质初识二叉树的几个操作函数 二叉树的定义二叉树T:一个有穷的节点集合。这个集合可以为空;若不为空,则它是由根节点和称为其左子树和右子树的两个不相交的二叉树组成。二叉树具体的五种基本形态1.空树2.只有一个节点3.有左子树,但右子树为空4.有右子树,但左子树为空 5.左右两子树都不为空要注意,二叉树与普通的度为二的树不同的一点是:二叉树的子树有左右顺序之分。特殊二叉树斜二叉树斜二叉树都只有左儿子或者都只
绪论“生命有如铁砧,愈被敲打,愈能发出火花。——伽利略”;本章主要是数据结构二叉树的进阶知识,若之前没学过二叉树建议看看这篇文章一篇掌握二叉树,本章的知识从浅到深的对搜索二叉树的使用进行了介绍和对其底层逻辑的实现进行了讲解,希望能对你有所帮助。话不多说安全带系好,发车啦(建议电脑观看)。1.二叉搜索树1.1二叉搜索树的概念:二叉搜索树又称二叉排序树/二叉查找树**,它或者是一棵空树。二叉搜索树还有二叉树的性质不同的是其性质有:1.大于子树根节点的值存在根节点的右子树2.小于子树根节点的值存在根节点的左子树3.左右子树都是二叉搜索树换种说法:若它的左子树不为空,则左子树上所有节点的值都小于根节
作者推荐map|动态规划|单调栈|LeetCode975:奇偶跳涉及知识点单调双向队列二叉树题目给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例1:输入:nums=[1,3,-1,-3,5,3,6,7],k=3输出:[3,3,5,5,6,7]解释:滑动窗口的位置最大值[13-1]-3536731[3-1-3]5367313[-1-35]367513-1[-353]67513-1-3[536]7613-1-35[367]7示例2:输入:nums=[1],k=1输出:[1
个人主页:点我进入主页专栏分类:C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶C语言刷题 数据结构初阶 Linux欢迎大家点赞,评论,收藏。一起努力,共赴大厂。目录1.前言 2.二叉树各个功能代码实现2.1二叉树结构体2.2二叉树的前序遍历 2.3中序遍历 2.4后序遍历2.5计算二叉树节点个数2.6计算二叉树叶子节点的个数 2.7计算二叉树的深度2.8计算第k层的节点个数2.9层序遍历2.10层序遍历变式2.11判断是否为完全二叉树2.12二叉树内存释放2.13树的创建3.二叉树的性质4.总结1.前言 我在前面写过关于顺序表,栈,队列,堆