数据结构-树-二叉树-1

来源:互联网 发布:小米盒子 破解软件 编辑:程序博客网 时间:2024/05/22 14:33

层次关系


查找:

1静态查找

A二分查找

元素满足

a有序

b连续存放在数组中

时间复杂度O(logN)


二分查找判定树:

1判定树上每个结点需要的查找次数刚好为该结点所在的层数。

2查找次数不会超过树的深度

3n个结点判定树的深度为log(2)n+1。


树:

n个结点,n=0空树。

根Root相对的

子树SubTree相对的

子树为互不相交的有限集……

除了根结点外,每个结点有且仅有一个父节点

一颗N个结点的树有N-1条边

树的定义是以递归的方式定义的。

树的基本术语

a结点的度(Degree):结点的子树个数

b树的度:树的所有结点中最大的度数

c叶结点(Leaf):度为0的结点

d父结点(Parent):有子树的结点是其子树根结点的父结点

e子节点(Child):若A结点是B结点的父结点,则B结点是A结点的子结点。

f兄弟结点(Sibling):具有同父结点的子节点互为兄弟结点。

g路径和路径长度

h祖先结点

i子孙结点

j结点的层次

k树的高度

树的表示

a儿子-兄弟表示法

即二叉树,度为2的树。




二叉树:


性质:

A二叉树第i层的最大结点数为:2^(i-1),i>=1。

B深度为k的二叉树有最大结点总数为:2^(k)-1,k>=1。

C   n0=n2+1


存储结构:

1顺序存储结构

完全二叉树或者填充从完全二叉树

2链表存储




二叉树的遍历:


1先序遍历:

A访问根结点

B先序历遍其左子树

C先序历遍其右子树


三种历遍过程路线是一样的,只是访问结点的时机不同。

二叉树的非递归遍历:

特别的是“堆栈实现后序遍历的非递归程序”

查到三种方法:穷极构建两次访问;重视压栈次序;反向思维。


二叉树的核心问题:二维结构的线性化


使用队列进行“层序”遍历


二元运算表达式树及其遍历

先序、中序、后序遍历分别得到前缀、中缀、后缀表达式。

0 0
原创粉丝点击