数据结构----树(双亲表示法)
存储方法:
(1)双亲表示法:存取每个节点的父亲是谁
基于顺序存储结构实现:用数组实现
思路:用结构体存放数据和一个下标(用于表示该节点的父节点),同时用一个变量存储节点数量。
操作:
(1)初始化一个根节点
//用结构体作为节点
struct Node{char data;//节点数据int parentIndex;//双亲节点位置
}trees[maxx];
int len = 0;//节点的实际数量
//初始化
void initRoot(char r)
{trees[0].data = r;trees[0].parentIndex = -1;//根节点的父节点索引设置为-1len++;
}
(2)查找
//查找结点
int Find(char rx)
{int i;//目标位置for(i=0;i<len;i++){if(trees[i].data == rx){break;}}return i;
}
(3)插入
//插入节点(新的子节点尾插法,然后找到对应的父节点)
void insert(char r,char parent)
{if(len == maxx){printf("Tree is overflowed ! \n");return ;}trees[len].data = r;int i = Find(parent);trees[len].parentIndex = i;len++;
}