美文网首页
数据结构笔记(树->二叉树)

数据结构笔记(树->二叉树)

作者: 岸边露伴一动不动 | 来源:发表于2020-07-11 15:24 被阅读0次

二叉树(Binary Tree):
根节点、左子树TL和右子树TR

特殊二叉树:
1、斜二叉树(Skewed Binary Tree)
2、完美二叉树(Perfect Binary Tree) 即满二叉树(Full Binary Tree)
3、完全二叉树(Compelet Binary Tree)

二叉树重要性质:
1、一个二叉树第i层的最大节点数为:2^(i-1),i>=1
2、深度为k的二叉树的最大节点数为:2^k - 1,k>=1
3、对于任一非空二叉树,叶节点 = 度为2的非叶节点 + 1

常用遍历方法:
1、先序:根、左、右
2、中序:左、根、右
3、后序:左、右、根
4、层次遍历:从上到下、从左到右

二叉树存储结构:
1、顺序存储结构(数组存储):
1、完全二叉树:
1、非根节点(i>1)的父结点的序号是i/2
2、节点(i)的左孩子节点的序号是2i(2i<n)
3、节点(i)的右孩子节点的序号是2i+1(2i+1<n)
2、一般二叉树
1、补齐为完全二叉树(空间浪费)
2、链表存储
1、1、三个域:data、left、right

遍历方法(链式存储为例):
递归:
1、先序遍历:
1、访问根节点
2、先序遍历左子树
3、先序遍历右子树
2、中序遍历:
1、中序遍历左子树
2、访问根节点
3、中序遍历右子树
3、后序遍历:
1、后序遍历左子树
2、后序遍历右子树
3、访问根目录
先序、中序、后序遍历路线相同、访问节点时机不同。
中序遍历非递归算法实现:
使用堆栈:根节点压入堆栈、进入左子树判断;无左子树则抛出节点,进入右子树判断:无右子树则返回上一层

层序遍历:
1、队列实现:遍历从根节点开始,根节点入队,执行循环:根节点出队,访问,将其左右子树入队

相关文章

  • 算法学习

    数据结构学习笔记:树与树的表示、二叉树及其遍历、二叉搜索树、平衡二叉树、堆、哈夫曼树、集合及其运算算法学习笔记浅谈...

  • 数据结构 - 概要

    数组 链表 堆/栈/队列 树 数据结构 - 二叉树数据结构 - 二叉查找树数据结构 - 平衡二叉树数据结构 - A...

  • 关于函数递归和迭代的转化, 及尾递归相关知识的接触和思考

    javascript实现数据结构: 树和二叉树,二叉树的遍历和基本操作 js 二叉树 【数据结构与算法】深入浅出递...

  • 二叉树非递归遍历

    二叉树的非递归遍历 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有...

  • 数据结构之二叉树(一)——绪论

    前言 二叉树是数据结构中一种重要的数据结构,也是树表家族最为基础的结构,包括完全二叉树、满二叉树、二叉查找树、AV...

  • IOS基础知识-算法与数据结构篇

    数据结构 通常可以分为四类: 数据结构的存储方式: 链表可分为: 什么是树 什么是二叉树 二叉树遍历 在二叉树的一...

  • 二叉树的基本算法

    二叉树的基本算法 树、二叉树 的基本概念,参考数据结构算法之美-23讲二叉树基础(上):树、二叉树[https:/...

  • 数据结构与算法大纲

    王争课程笔记 10 个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树 10 个算法:递归...

  • python实现二叉树的遍历

    二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有深度遍历和广度遍历,...

  • MySQL索引

    索引是帮助MySQL高效获取数据的排好序的数据结构 索引数据结构: 二叉树 红黑树 哈希 B-Tree 二叉树容易...

网友评论

      本文标题:数据结构笔记(树->二叉树)

      本文链接:https://www.haomeiwen.com/subject/irdicktx.html