【数据结构】二叉树
来源:互联网 发布:excel对应数据替换 编辑:程序博客网 时间:2024/05/16 01:46
二叉树总结
1. 二叉树的重要性质
一个二叉树的第i层最多有
2i−1 个结点(i>=1)深度为k的二叉树最多有
2k−1 个结点(k>=1)- 对于任何非空二叉树有
n0 个叶结点,n2 个度为2的结点,那么总有关系:n0=n2+1
2.对二叉树的操作
Boolean IsEmpty(BinTree BT);//判断BT是否为空。
void Traversal(BinTree BT);//遍历二叉树,按顺序访问每个结点。
BinTree CreatBinTree();//创建一个二叉树
3.四种遍历方法
void PreorderTraversal(BinTree BT); 先序遍历:根节点->左子树->右子树;
void InorderTraversal(BinTree BT); 中序遍历:左子树->根节点->右子树;
void PostorderTraversal(BinTree BT); 后序遍历:左子树->右子树->根节点;
void LevelorderTraversal(BinTree BT);层次遍历,从上到下,从左到右。
4.二叉树的存储结构
4.1顺序存储
对于完全二叉树可以用数组进行存储,按从上到下,从左到右的顺序进行。
这种存储方式有以下性质:
1.序号为i的非根结点的父结点序号为⌊i/2⌋(向下取整)
2.结点i的左儿子序号为2i(2i<=n,n为结点总数)
2.结点i的右儿子序号为2i+1(2i+1<=n,n为结点总数)
3.对于一般的二叉树也可以用这种方式存储,但是会造成空间浪费
4.2链式存储
typedef struct TreeNode *BinTree;typedef BinTree position;struct TreeNode{ ElementType Data; BinTree Left; BinTree Right;}
0 0
- 数据结构-树-二叉树
- 数据结构::树,二叉树
- 数据结构-二叉树
- 二叉树的数据结构
- 数据结构-二叉树算法
- java数据结构:二叉树
- 数据结构---二叉树
- 数据结构(C++)--二叉树
- JAVA 数据结构 二叉树
- 数据结构-二叉树 问题
- 转贴:数据结构:二叉树
- 二叉树(数据结构 c++)
- 数据结构-二叉树操作
- java数据结构----二叉树
- 数据结构二叉树
- 数据结构中的二叉树
- 数据结构--二叉树
- 数据结构二叉搜索树
- awk 字符串替换 gsub
- 为什么要有this指针?(更新中)
- 适配器模式
- 杭电ACM1006
- 删除ArrayList集合中的元素(方法剖析)
- 【数据结构】二叉树
- Lua笔记19 面向对象实现__index
- 大数据风控指标----查准率与查全率
- 【数据库】:哈工大软件学院数据库原理第一次实验背景知识
- Makefile中的几个调试方法
- 服务端PHP设置cookie,客户端未生效
- Command模式实现撤销重做(Undo/Redo)
- 冒泡排序练习(Bubble Sort)
- 一道算法题