赞
踩
每个结点中保存指向双亲的“指针”
- #define MAX_TREE_SIZE 100//树中最多结点
-
- typedef struct {//树的结点定义
- int data;//数据元素
- int parent;//双亲位置域
- }PTNode;
- typedef struct {//树的类型定义
- PTNode nodes[MAX_TREE_SIZE];//双亲表示
- int n;//结点数
- }PTree;
新增数据元素无需按逻辑上的次序存储,之家在上一个结点后添加新结点,并记录双亲结点
1、删除结点数据域
2、将尾部数据移动至删除结点位置填充空缺
寻找其双亲结点相同的结点
顺序存储各个节点,每个结点中保存孩子的链表头指针
- #define MAX_TREE_SIZE 100//树中最多结点
-
- struct CTNode {
- int child;//孩子在结点数组中的位置
- struct CTNode* next;//下一个孩子
- };
- typedef struct {
- int data;
- struct CTNode* firstChild;//第一个孩子
- }CTBox;
- typedef struct {
- CTBox nodes[MAX_TREE_SIZE];
- int n, r;//结点数和根的位置
- }CTree;
- /树的存储——孩子兄弟表示法
- typedef struct CSNode {
- int data;
- struct CSNode* firsitchild, * nextsilbling;//第一个孩子和右兄弟指针
- }CSNode,*CSTree;
- int main() {
-
- return 0;
- }
使用孩子兄弟表示法
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。