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

php做心理测试网站免费的模板网站

php做心理测试网站,免费的模板网站,如何做网站效果更好,做网站设计答辩问题语言的数据结构:树与二叉树(二叉树篇) 前言概念特别的二叉树满二叉树完全二叉树 存储结构顺序存储链式存储 查找方式 前言 上文说到了树,有人认为二叉树是树的每一个分支都有两个子节点。其实这也对。但二叉树在此基础上还做了限…

语言的数据结构:树与二叉树(二叉树篇)

  • 前言
  • 概念
  • 特别的二叉树
    • 满二叉树
    • 完全二叉树
  • 存储结构
    • 顺序存储
    • 链式存储
  • 查找方式

前言

上文说到了树,有人认为二叉树是树的每一个分支都有两个子节点。其实这也对。但二叉树在此基础上还做了限制。比如区别了左子树与右子树。也就是说,当二叉树的根只有一个孩子时,也需要知道这个是左孩子还是右孩子。就是因为这个原因,让二叉树的性能相对于树有了明显的提高。也让二叉树成了一个全新的概念,而不是树的一个特别情况而已。

概念

二叉树(Binary Tree) 是树的一种常见形式,它是一棵有序树。它的子节点最多只有两个,分为左子树和右子树,哪怕只有一个子节点,也要区分出是左子树还是右子树,如果颠倒了,就是一棵新的二叉树了。二叉树的度最大为2。
二叉树常被用于实现二叉查找树和二叉堆,树的很多问题都可以通过 B F S 广度优先搜索算法 \color{orange} BFS广度优先搜索算法 BFS广度优先搜索算法 D F S 深度优先搜索算法( D e p t h F i r s t S e a r c h ) \color{orange}DFS深度优先搜索算法(Depth First Search) DFS深度优先搜索算法(DepthFirstSearch解决。

特别的二叉树

满二叉树

一个二叉树,如果它有子节点,并且子节点数都是最大值( 在每一层上没有空缺的位置 \color{orange}在每一层上没有空缺的位置 在每一层上没有空缺的位置),则称为满二叉树。一个满二叉树,除了根节点,其余节点数都是2个一起出现的,如 B与C、D与E、F与G。 所以如果满二叉树的层级为K,则
节点数
2 k − 1 \ 2^k-1  2k1 。这个 -1,就是因为根节点只有一个。
如果节点数为N,则
高度
: h = l o g 2 ( N + 1 ) log_2(N+1) log2(N+1)
image.png

完全二叉树

满二叉树是完全二叉树特殊情况,当满二叉树从最后的节点依次减少时,形成的就是完全二叉树。完全二叉树从根节点、左子树、右子树的顺序执行,一直到树结束都没有空缺的节点。
image.png
image.png

存储结构

顺序存储

可以使用数组来存储。但只适用于满二叉树和完全二叉树的情况。否则如果中间缺失了节点,在数组中相应的位置就要空在那里,造成了空间的浪费。之所以F的位置要空在这里,是因为G是C的右子树,而左子树是没有节点的。如果那个位置不空着,则G就表示为左子树了。这也就是用数组存储的不好之处了。

image.png image.png

链式存储

用链表来创建树结构。注意:此时用链表来表示树,并非说此时的树就是线性结构。而是用链表重新去定义一种数据结构。此时这个结构只能称作树,而不可以称作链表。
用链表创建树的好处就是左子树与右子树的表示。如上面的示例,直接在每个节点上存储三个信息:1、数据本身的信息,2、左子树的指针,3、右子树的指针。这时G就直接可以表示为C的右子树,而其左子树指向NULL。

// 二叉树节点的结构体定义  
typedef struct TreeNode {  int val;            // 节点的值  struct TreeNode *left;   // 左子树  struct TreeNode *right;  // 右子树  
} TreeNode; 

查找方式

对二叉树的查找有三种方式,是按照查找根的点的顺序来区分的。 先序 \color{orange}先序 先序(根节点、左子树、右子树), 中序 \color{orange}中序 中序(左子树、根节点、右子树), 后序 \color{orange}后序 后序(左子树、右子树、根节点)。

image.png

前序的访问顺序:A B D E C G
中序的访问顺序:D B E A C G
后序的访问顺序:D E B G C A

http://www.rdtb.cn/news/22113.html

相关文章:

  • 卖主机网站百度搜索一下就知道
  • 建站网址导航hao123百度关键词推广费用
  • .net域名 可以做公司网站吗百度竞价排名服务
  • apache 多个网站微信指数怎么看
  • 哪家企业网站做的好河南郑州最新消息今天
  • 网站建设的大公司好爱站网seo工具包
  • google移动网站建站十大原则网店如何推广
  • 网站发展2022网络热词30个
  • 如何做公司网站优化网络推广的平台有哪些
  • 烟台网站建设优化松原新闻头条
  • wordpress素材下载源码正版搜索引擎优化
  • wordpress 缓存平台优化是指什么
  • 成都网站定制深圳百度竞价托管公司
  • 做网站需要什么样的服务器谁能给我个网址
  • 昆明靠谱的网站开发公司有哪些中国十大知名网站
  • 徐东做网站seo流量排行榜神器
  • 珠江摩尔网站建设百度贴吧人工客服
  • 网站更换空间需要怎么做跟我学seo
  • 用pycharm做网站全球网站流量查询
  • 网站搜索栏怎么做网站备案查询工信部官网
  • 如何查询网站建站时间百度关键词工具在哪里
  • 建设项目公示对网站有什么要求系统优化软件十大排名
  • 本地网站构建北京、广州最新发布
  • 青岛城乡建设局网站首页推荐就业的培训机构
  • 网站视频主持免费网站建设平台
  • 淄川政府网站建设托管刷移动关键词优化
  • 网站建设方案策划书ppt一个具体网站的seo优化方案
  • 楼市最新消息价格合肥正规的seo公司
  • 网络推广SEO优化网站建设seo好学吗入门怎么学
  • 文科女学java 做网站网络服务器搭建