当前位置: 首页 > wzjs >正文

自己做网站发信息排行榜前十名

自己做网站发信息,排行榜前十名,防窜货管理系统开发,网址搜索栏在哪二叉树理论基础 二叉树的种类 满二叉树和完全二叉树,二叉树搜索树 满二叉树 如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。 节点个数2^n-1【n为树的深度】 完全二叉树 在完全二叉树…

二叉树理论基础

二叉树的种类

满二叉树和完全二叉树,二叉树搜索树

满二叉树

如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。

节点个数2^n-1【n为树的深度】

完全二叉树

在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层(h从1开始),则该层包含 1~ 2^(h-1) 个节点。

满二叉树一定是完全二叉树

二叉搜索树

二叉搜索树是有数值的了,二叉搜索树是一个有序树

  • 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;
  • 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
  • 它的左、右子树也分别为二叉排序树

平衡二叉搜索树【AVL(Adelson-Velsky and Landis)树】

它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。

C++中map、set、multimap,multiset的底层实现都是平衡二叉搜索树,所以map、set的增删操作时间时间复杂度是logn【key有序】

而unordered_map、unordered_set底层实现是哈希表。

二叉树的存储方式

二叉树可以链式存储,也可以顺序存储。

那么链式存储方式就用指针, 顺序存储的方式就是用数组。

链式存储【构造二叉树:函数里面传参头指针】

数组【实际用的少】

遍历方式

DFS

中序前序后序【递归,栈;非递归,迭代】

左右中序指的是中的遍历顺序

BFS

层序遍历【迭代,队列,先进先出】

二叉树定义

struct TreeNode{

        int val;

        TreeNode* left;

        TreeNode* right;

        TreeNode(int x):val(x),left(NULL),right(NULL){}//构造函数

};

构造函数也可以不写,但是new一个新的节点的时候就比较麻烦。

例如有构造函数,定义初始值为9的节点:

TreeNode* a = new TreeNode(9);

而没有构造函数还得自己定义:

TreeNode* a = new TreeNode();
a->val = 9;
a->left = NULL;
a->right = NULL;

 二叉树遍历

递归三要素:

1.函数返回值和参数【函数头定义】2.确定结束条件【if(check)return】3.单层递归逻辑

不太懂这个结构体/二叉树怎么读进去的

1.中序遍历

94. 二叉树的中序遍历 - 力扣(LeetCode)

p.s.函数名字不要起太平常的,比如try什么的,可能和系统性的函数重名,出问题

p.s.对于返回值是void的递归函数,参数里的&是重点

感觉挺神奇的,只有root的val,也就是中可以放进数组

问题:这个输入是怎么读进去的

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:vector<int> inorderTraversal(TreeNode* root) {//没看懂//返回一个vector,必然不可以遍历vector<int> res;try1(root,res);return res;}void try1(TreeNode* root,vector<int>&res){if(root == nullptr){return;}//左中右try1(root->left,res);res.push_back(root->val);try1(root->right,res);}
};

2.之后迭代遍历【代码随想录】

http://www.dtcms.com/wzjs/166773.html

相关文章:

  • 网站 蜘蛛网络广告发布
  • wap手机网站开发asp经验游戏推广话术技巧
  • 关于进一步加强网站建设如何让百度收录自己信息
  • 网站建设方案案例百度竞价广告代理
  • 全国政府网站建设相关规定微帮推广平台怎么加入
  • 做瞹瞹瞹免费网站郑州seo教程
  • 网页交互设计seo外链发布工具
  • 咸阳做网站排名免费域名
  • 长沙做网站nn微联讯点很好武汉网络推广seo
  • 删除的网站做404最好的优化公司
  • 网站后台编辑器不显示谷歌官网登录入口
  • 网站的费用多少优化手机流畅度的软件
  • 用手机做空间建网站网络广告宣传平台
  • 三级网站域名谷歌seo外链
  • 本地做网站贵百度推广做二级域名
  • 营销网站建设流程深圳高端网站制作公司
  • 咸宁网站建设seo课程简介
  • 石家庄网络公司有哪些上海seo优化服务公司
  • 做高仿包的网站有哪些艾滋病阻断药
  • 网站建设 域名 空间网站快速收录软件
  • 南城网站建设公司方案网络推广营销培训机构
  • 网站搜索推广销售西安seo阳建
  • b2c网站建设 广州外贸平台有哪些?
  • wordpress两个站点文章同步谷歌seo服务公司
  • 延吉市住房城乡建设局官方网站如何去做网络营销
  • 动态网站和静态网站区别b2b电子商务网
  • 做秒杀网站网站优化排名金苹果下拉
  • 宿迁企业网站建设附近的教育培训机构有哪些
  • 高端网站优化成都网站seo费用
  • 书香气的域名做网站重庆网站建设外包