Loading

结构体定义

单链表

typedef struct LNode {
	int data;
	struct BiTNode *next;
}LNode;

二叉树

typedef struct BTNode {
	int data;
	struct BiTNode *lchild, *rchild;
} BTNode;

树的孩子兄弟表示法

typedef struct TNode {
	int data;
	struct TNode *firstchild, *nextbro; // firstchild是第一个孩子,nextbro是右兄弟
}TNode;

并查集

并查集结构定义:
int UFSets[n];

初始化操作:
void init(int S[]){
  for (int i = 0; i < n; i++) {
    S[i] = -1; // 每个自成单元素集合
  }
}

find操作:
int find(int S[], int x){ 
  while (S[x] > 0) x = S[x]; // 寻找x的根
  return x;
}

Union操作:
void union(int S[], int root1, int root2) {
  S[root2] = root1; // 将根root2连接到另一个根root1下面
}
posted @ 2022-11-01 16:59  ColdWater216  阅读(26)  评论(0)    收藏  举报