运行结果正确
感觉比二叉树还简单

#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);
}</
本文介绍了如何使用C语言实现集合的按秩归并操作,并探讨了在此过程中涉及的路径压缩技术。通过示例展示了其实现过程,结果显示正确,作者认为这种方法相比处理二叉树更为简洁易懂。
最低0.47元/天 解锁文章
420

被折叠的 条评论
为什么被折叠?



