孩子表示法存储树,采用顺序表和链表表示的差别是?
孩子表示法存储树,采用顺序表和链表表示的差别是?
孩子表示法存储树,采用顺序表和链表表示的差别是?
顺序表的问题在于,它只能存储固定大小的数据,如果这个固定大小太小,那么大一些的存不下。如果太大,造成很多存储单元的浪费。
链表没有这个问题。
本质上说,孩子表示法存储树,采用顺序表,也是一种特殊的链表,只是存储的不是指针,而是下标。
有3种结构体
1. 数据域存放孩子下标,指针域存放下一个结构体1的地址(链表)
2. 数据域存放节点内容,指针域存放首个结构体1的地址(链表)
3. 结构体2的指针,节点个数(顺序表)
需要顺序表和链表同时存储树。
结构体3用来存放所有节点的内容,结构体3的每个元素是结构体2,结构体2的指针域指向的结构体1存放该元素的所有孩子节点的下标。通过遍历结构体2的指针域指向的结构体1就可知道对应元素的孩子节点。