/* 樹結構表示下集合的合併與元素的查詢(此程式在win-tc1.9.1版下除錯通過)*/
#include "stdio.h"
#include "conio.h"
typedef struct
node,*set;
set s1[1],s2[1]; /*定義二個集合,初始化每集合中元素個數為1*/
void initset(set *s)
}void printset(set *s) /*輸出集合中的元素*/
int find(set *s, int e)
printf("查詢成功!/n");
for(i=1;i<=-(s[1]->tag);i++) /*輸出使用壓縮規則後集合中的變化*/
printf("%d/t%d/n",s[i]->data,s[i]->tag);
return p;}}
printf("元素不在該集合中!/n"); /*查詢不成功*/
return -1;
}int union(int e1,int e2)
else
return sum;
}printf("兩個集合中不存在 %d 或%d /n",e1,e2);
return -1;
main()
並查集 元素的合併與刪除
一 問題描述 題目鏈結 有n個節點 1 n 100000 進行如下兩種操作 1 m a b,把a b合併 2 s a,把a分離出來 進行m 1 m 1000000 次操作,問最後有幾個組?二 解題思路 用並查集來實現,我們都知道並查集的合併操作很容易實現,而從集合中移出乙個元素卻很難。這樣想,移出元...
並查集(合併集合,查詢集合中的元素)
定義 合併集合 和 查詢集合中的元素 兩種操作的關於資料結構的一種演算法。演算法 用集合中的某個元素來代表這個集合,該元素稱為集合的代表元。乙個集合內的所有元素組織成以代表元為根的樹形結構。對於每乙個元素 parent x 指向x在樹形結構上的父親節點。如果x是根節點,則令parent x x。對於...
記錄一種把樹結構的物件全部取到乙個集合中的寫法
乙個樹結構的物件,層次不限.可使用者自定義增加 如 public class org在查詢的時候直接封裝成乙個樹結構.listlist this.sqlfind sb.tostring org.class,params.toarray 查詢出所有部門id listresult new arrayli...