0
点赞
收藏
分享

微信扫一扫

数据结构核心代码 day12

无聊到学习 2022-04-19 阅读 89

5.3 树、森林

树的存储结构
双亲表示法
#define MAX_TREE_SIZE 100 //树中最多结点数
typedef struct { //树的结点定义
ElemType data; //数据元素
int parent; //双亲位置域
} PTNode;
typedef struct{ //树的类型定义
PTNode nodes[MAX_TREE_SIZE];//双亲表示
int n; //结点数
}PTree;

孩子兄弟表示法
typedef struct CSNode{
ElemType data; //数据域
struct CSNode *firstchild,*nextsibling;//第一个孩子和右兄弟指针
}CSNode,*CSTree;

5.4 树的应用

并查集结构定义
#define SIZE 100
int UFSets[SIZE]; //集合元素数组(双亲指针数组)
并查集初始化
void Initial(int S[]) {
for (int i = 0; i < MaxSize; i++) //每个自成单元素集合
S[i] = -1;
}

Find 操作
int Find(int S[], int x) {
while (S[x] >= 0) //循环寻找x的根
x = S[x];
return x; //根的S[]小于0
}

Union 操作
void Union(int S[], int Root1, int Root2) {
//Root1与Root2不同并且表示子集合的名字
S[Root2] = Root1; //将根Root2连接到另一根Root1下面
}

举报

相关推荐

数据结构核心代码 day8

数据结构核心代码 day5

数据结构核心代码 day4

数据结构核心代码 day21

数据结构核心代码 day20

数据结构核心代码 day19

0 条评论