现在的位置: 首页 > 综合 > 正文

一般树的存储

2018年03月21日 ⁄ 综合 ⁄ 共 681字 ⁄ 字号 评论关闭

一般树的存储:

1) 双亲表示法:

           求父节点方便

0

A

-1

1

B

0

2

C

0

3

D

0

4

E

2

 

双亲表示法:是使用数组来存储树

0-4为数组的下标

数组的类型为一个结构体

结构体中有两个数据类型:

1.      树中存储的数据(与树中的数据类型一样)

2.      存储树的节点的父节点的下标(int)

A节点没有父节点,则下标存储-1

B、C、D的父节点为A,则存储A节点的小标0

E的父节点为C,则存储C节点的下标2

 

 

2)孩子表示法:

      求子节点方便

 

0

A

1

B

2

C

NULL

3

D

4

E

NULL

5

F

NULL

6

G

NULL

 

孩子表示法:是使用数组和链表来实现树的存储

数组的类型为一个结构体:

结构体为一个存储树的数据类型和一个指针域(指向一个链表来存储其子节点)

节点A有三个子节点,则数组的指针域指向一个链表,链表中存储了B、C、D的指针域

同理B、D指向B、D的子节点E、F、G

C、E、F、G,,没有子节点,则指针域为NULL

 

2) 双亲孩子表示法

       求父节点和子节点都方便

 

0

A

-1

1

B

0

2

C

1

D、E、F

 

3

D

2

NULL

4

E

2

NULL

5

F

2

NULL

 

双亲孩子表示法:是使用数组和链表来实现树的存储

数组中的数据类型同理综合了双亲表示法和孩子表示法,存储父节点的小标和子节点的指针域

 

3) 二叉树表示法

把一个普通树转化成二叉树来存储

   具体转化方法:

         设法保证任意一个节点

                 左指针域指向它的第一个子节点

                 右指针域指向它的下一个兄弟节点

  只要能满足此条件,就可以把一个普通树转化二叉树

 

 

抱歉!评论已关闭.