运行结果正确
感觉比二叉树还简单
#include<stdio.h>
#include <stdlib.h>
#include <string.h>
#include<malloc.h>
//先定义一个栈
typedef struct Stack{
int base[100];
int top;
}stack,*stack_point;
//初始化一个集合的数组,数组的下标就是集合的元素,数组的值就是这个元素的父节点
void init(int* &arr,int n){
arr=(int*)malloc(n*sizeof(int));
for(int i=0;i<n;i++){
arr[i]=-1;
}
}
//最简单的找根方法
int find_root(int *arr,int elem){
if(arr[elem]<0){
return elem;
}
else{
return find_root(arr,arr[elem]);
}
}
//遍历这个集合数组
void tra(int* arr,int n){
for(int i=0;i<n;i++){
printf(" %d ",i);
}</