Bintree(二叉树)

来源:互联网 发布:ftp客户端软件下载 编辑:程序博客网 时间:2024/05/16 01:33

阐述一下二叉树的理解

1.二叉树的一些性质

这里写图片描述

二叉树性质

  1. 在二叉树的第i层上至多有2i-1个结点(i≥1)
  2. 深度为k的二叉树至多有2k-1个结点(k≥1)
  3. 对任何一棵二叉树,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1
  4. 左子树的所有节点小于父节点
  5. 有字数的所有节点大于父节点

满二叉树

这里写图片描述
1. 一棵深度为k且有2k-1个结点的二叉树称为满二叉树。

完全二叉树

这里写图片描述

可以对满二叉树的结点进行连续编号,约定编号从根结点起,自上而下,自左至右,则由此可引出完全二叉树的定义。深度为k且有n个结点的二叉树,当且仅当其每一个结点都与深度为k的满二叉树中编号从1到n的结点一一对应时,称之为完全二叉树。

一般二叉树

这里写图片描述

除了满二叉树之外 都是一般二叉树

2.二叉树的遍历

  1. 先序遍历、后序遍历、中序遍历就不赘述了网上一搜一大片。
  2. 阐述一下怎么按照深度从左到右遍历。

以图a为例子 我们需要借助队列的数据结构。
1. 首先获取根节点,获取他的做孩子 2 与右孩子 3,并放入队列quene中
2. 从队列中去一个元素 即 2 把该元素的左右孩子即 4、5放入队列
3. 递归 2

得到的数据输出就是按照深度从左到右遍历的数据输出。

3.搜索二叉树(查找二叉树的)的搜索方式

T key = a search key Node root = point to the root of a BST while(true){if(root==null){     break; } if(root.value.equals(key)){return root; } else if(key.compareTo(root.value)<0){root = root.left; } else{ root = root.right;}} return null;

从程序中可以看出,当BST查找的时候,先与当前节点进行比较:

1.如果相等的话就返回当前节点;

2.如果少于当前节点则继续查找当前节点的左节点;

3.如果大于当前节点则继续查找当前节点的右节点。

到此为止。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 网络连接不给力怎么办 抖音网络不给力怎么办 玩lol老是掉线怎么办 无线网络连接有防火墙怎么办啊 千牛重新获取enc-k怎么办 为什么说不能获取对方信息怎么办 qq炫舞客户端被修改怎么办 win7玩穿越卡顿怎么办 玩dnf就蓝屏怎么办win7 平板玩fgo闪退怎么办 微信总是说空间不足怎么办 激活卡时遇到服务器错误怎么办 悦平台服务器错误是怎么办 手机银行提示登录服务器错误怎么办 qq漂流瓶封了怎么办 我的世界被冻结怎么办 qq里被屏蔽了怎么办 qq领手游礼包账号存在异常怎么办 笔记本电脑太卡怎么办最有效 华为平板电脑忘记开机密码怎么办 平板电脑忘记开机密码怎么办 平板电脑忘了开机密码怎么办 qq文件已被损坏怎么办 斗地主没痘了怎么办 熹妃q传金币不够用怎么办 苹果手机玩王者卡怎么办 苹果6玩王者荣耀卡怎么办 苹果macbook开不了机怎么办 苹果7震动像拖拉机一样怎么办 win10笔记本玩lol卡怎么办 苹果笔记本密码忘了怎么办 苹果笔记本系统密码忘记了怎么办 qq加好友频繁了怎么办 淘宝买食品有问题怎么办 手机的设置图标没有了怎么办 国家创业贷款还不了会怎么办 手机mac显示:不好使.怎么办? 英雄联盟买皮肤重复怎么办 皮肤很油毛孔又粗怎么办 笔记本电脑玩英雄联盟卡怎么办 win10系统更新不动了怎么办