2025-3-3 二叉树的存储结构
一、二叉树的存储结构( 顺序存储,链式存储)
1.顺序存数--(用数组)
(完全二叉树)常考的基本操作:
i 的左孩子 -----2i 右孩子-----2i+1
i的父节点-----[i/2] 向下取整
i所在的层次-----[log2^(n+1)]或[log2^n]+1
可利用数组下标来反映数据之间的关系。
(非完全二叉树)只能用开始定义的isEmpty来判断了。(浪费存储空间)
最坏的情况:高度为h且只有h个结点的单支树(只有右孩子),至少需要2^h -1个存储单元。
结论:二叉树的顺序存储结构只适合存储完全二叉树。
二、二叉树的链式存储(指针)
1.链式存储(用指针)--给每个数据开辟两个指针域,分别指向左孩子和右孩子。
具体代码:一个一个创建。(老师没讲循环啊,我不会啊)
查找:找孩子特别简单,找父结点就只能从根遍历。
如果需要经常查找父结点,可多创建一个父结点指针。--(三叉链表)
总结: