📝个人主页:@Sherry的成长之路🏠学习社区:Sherry的成长之路(个人社区)📖专栏链接:数据结构🎯长路漫漫浩浩,万事皆有期待文章目录1.堆的时间复杂度1.1向下调整建堆1.2向上调整建堆2.堆的应用2.1堆排序2.2TOP-K问题2.2.1方法1:2.2.2方法2:2.2.3方法3:I.TOP-K.h用于函数的声明II.TOP-K.c用于函数的定义III.Test.c用于函数的测试3.总结:1.堆的时间复杂度因为堆是完全二叉树,而满二叉树也是完全二叉树,此处为了简化使用满二叉树来证明(时间复杂度本来看的就是近似值,多几个节点不影响最终结果)建堆的调用次数用T(N)表示:(从最后一个非
二叉树的实现定义结构体我们首先定义一个结构来存放二叉树的节点结构体里分别存放左子节点和右子节点以及节点存放的数据typedefintBTDataType;typedefstructBinaryTreeNode{ BTDataTypedata; structBinaryTreeNode*left; structBinaryTreeNode*right;}BTNode;构造一个二叉树我们首先定义一个新建新节点的函数,方便构造二叉树BTNode*buynode(BTDataTypex){ BTNode*node=(BTNode*)malloc(sizeof(BTNode)); if(node==NU
LeetCode|110.平衡二叉树OJ链接首先计算出二叉树的高度然后计算当前节点的左右子树的高度,然后判断当前节点的左右子树高度差是否超过1,最后递归地检查左右子树是否也是平衡的。//计算二叉树的高度intheight(structTreeNode*root){if(root==NULL)returnNULL;intleft=height(root->left);intright=height(root->right);returnleft>right?left+1:right+1;}//判断是否是平衡二叉树boolisBalanced(structTreeNode*root){if(roo
🔥博客主页:小羊失眠啦.🎥系列专栏:《C语言》《数据结构》《Linux》《Cpolar》❤️感谢大家点赞👍收藏⭐评论✍️文章目录一、前置说明二、二叉树的遍历2.1前序遍历2.2中序遍历2.3后序遍历2.4层序遍历三、二叉树的结点个数3.1二叉树的总结点数3.2二叉树的叶子结点数3.3二叉树第k层结点数四、二叉树的高度/深度五、二叉树的查找六、二叉树的创建和销毁一、前置说明在学习二叉树各种各样的操作前,我们先来回顾一下二叉树的概念:二叉树是度不超过2的树,由根结点和左右2个子树组成,每个子树也可以看作一颗二叉树,又可以拆分为根结点和左右两颗子树…是不是很熟悉,一个大问题可以拆分为两个子问题,每个
二叉树一、树的概念及结构1.树的概念2.树的相关概念3.树的表示4.树在实际中的应用二、二叉树的概念及结构1.二叉树的概念2.满二叉树3.完全二叉树4.二叉树的性质5.二叉树的储存结构三、二叉树的遍历1.前序遍历2.中序遍历3.后序遍历4.层序遍历四、手撕二叉树(务必理解的基本知识!)1.二叉树销毁(后序销毁)2.二叉树的高度3.二叉树节点个数4.二叉树叶子节点个数5.二叉树第k层节点个数6.二叉树查找值为x的节点7.判断二叉树是否是完全二叉树(队列辅助)一、树的概念及结构1.树的概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树,是因为它看起来
🔥博客主页: 【小扳_-CSDN博客】❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0二叉树的说明 1.1二叉树的实现 2.0二叉树的优先遍历说明 3.0用递归方式实现二叉树遍历 3.1用递归方式实现遍历-前序遍历 3.2 用递归方式实现遍历-中序遍历 3.3 用递归方式实现遍历-后序遍历 4.0用非递归方式实现二叉树遍历 4.1用非递归方式实现遍历-前序遍历 4.2 用非递归方式实现遍历-中序遍历 4.3 用非递归方式实现遍历-后序遍历 5.0深度遍历的完整代码 1.0二叉树的说明
编程题:题一:字符串相加415.字符串相加-力扣(LeetCode)思路一:第一步:需要获取字符串的两个尾节点下标;第二步:创建用于记录进位数、获得的字符串的变量;第三步:只要有进位或还有数没有加完继续循环:利用三目运算:有符号+符号,无符号+0;第四步:最后将得到的字符串逆置,就是需要的结果。classSolution{public:stringaddStrings(stringnum1,stringnum2){//获取字符串的尾节点intit1=num1.size()-1;intit2=num2.size()-1;//记录进位数intcount=0;//获得的字符串strings1="";
呀哈喽。我是结衣。不知道大家的递归学到怎么样呢?如果大家的递归功底不是很好,那么我相信在学完这篇文章后大家一定会对递归有一个更深层次的了解的。构造链式二叉树在学习二叉树的基本操作前,需先要创建一棵二叉树,然后才能学习其相关的基本操作。由于现在大家对二叉树结构掌握还不够深入,为了降低大家学习成本,此处手动快速创建一棵简单的二叉树,快速进入二叉树操作学习,等二叉树结构了解的差不多时,我们反过头再来研究二叉树真正的创建方式。结构体的创建typedefintBTdatatype;typedefstructBinaryTreeNode{ BTdatatypedata; structBinaryTreeN
二叉搜索树1.二叉搜索树概念2.二叉搜索的实现2.1结点2.1基本框架2.2插入2.3查找2.4删除2.5打印3.二叉搜索树递归实现3.1查找3.2插入3.3删除4.二叉搜索树默认成员函数4.1构造4.2析构4.3拷贝构造4.4赋值重载6.二叉搜索树的应用6.1K模型6.2KV模型7.二叉搜索树的性能分析喜欢的点赞,收藏,关注一下把!1.二叉搜索树概念二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:1.若它的左子树不为空,则左子树上所有节点的值都小于根节点的值2.若它的右子树不为空,则右子树上所有节点的值都大于根节点的值3.它的左右子树也分别为二叉搜索树注意二查搜索树是
数据结构实验一:线性表,堆栈和队列实现数据结构实验二:二叉树的操作与实现数据结构实验三:图的操作与实现数据结构实验四:查找和排序算法实现文章目录一、实验目的:二、使用仪器、器材三、实验内容及原理1、教材P247实验题1:实现二叉树的各种基本运算的算法2、教材P248实验题3:由遍历序列构造二叉树3、教材P248实验题5:构造哈夫曼树生成哈夫曼编码4、教材P248实验题8:简单算术表达式二叉树的构建和求值5、教材P249实验题9:用二叉树表示家谱关系并实现各种查找功能一、实验目的:1、领会二叉链存储结构和掌握二叉树中的各种基本运算算法设计;2、领会线索二叉树的构造过程以及构造二叉树的算法设计;3