如何用C語言表示離散數學上的集合,並輸出輸入?

時間 2021-06-03 01:54:03

1樓:

除了 @Milo Yip所說的,還有各種Case比如你維護的各個集合之間不會有交集,那麼你可以使用並查集Disjoint-set data structure,在比如計算最小生成樹的克魯斯卡爾演算法中就可使用http://

en.wikipedia.org/wiki/Kruskal%27s_algorithm

別的以後再寫

2樓:Milo Yip

最簡單的是bit set(又稱為Bit array、bit vector),例如用 typedef unsigned bitset[N / sizeof(unsigned)]表示乙個集合(其全集的元素量為N),每個bit代表某個元素是否存在於該集合中。

這個資料結構的好處是,可用位操作(&、|、~)實現並集、交集、補集,非常適合計算機運作。

缺點是空間和時間複雜度和全集的元素數量 N 成正比,而不是集合實際的元素量。例如全集是32位整數,每個集合就需要2^32 bit = 512MB的空間。如果集合中的元素比較少,可以使用有序序列,例如排序陣列(Sorted array)、二叉查詢樹等實現集合。

它們的缺點是修改集合不是常數時間。

用簡單的C語言表示楊輝三角?

看到請叫我去敲鍵 include int main int i,j,a 10 10 int z,b for i 0 i 10 i a i 0 1 a i i 1 for i 2 i 10 i for j 1 ja i j a i 1 j a i 1 j 1 for i 0 i 9 i for z i...

離散數學中的閉包和計算機語言中的閉包有聯絡嗎?

賀師俊 根據Wikipedia條目 http en.wikipedia.org wiki Closure computer science History and etymology 尤其是註解4 5 6,可知計算機語言中的clourse用法是P.J.Landin發明的,意思其實就是closed e...

如何用華麗的語言表達簡單的事情?

理想的蘑菇 少年遊 並刀如水 並刀如水,吳鹽勝雪,纖手破新橙。錦幄初溫,獸煙不斷,相對坐調笙。低聲問 向誰行宿?城上已三更。馬滑霜濃,不如休去,直是少人行。宿娼是也。藥轉 鬱金堂北畫樓東,換骨神方上藥通。露氣暗連青桂苑,風聲偏獵紫蘭叢。長籌未必輸孫皓,香棗何勞問石崇。憶事懷人兼得句,翠衾歸臥繡簾中。...