用鍊錶實現集合

2021-10-01 18:12:58 字數 1186 閱讀 8742

用鍊錶來表示集合時,鍊錶的中的每個項表示集合的乙個成員,表示集合的鍊錶所占用的空間正比於所表示的集合的大小,而不是正比於全集合的大小,因此,鍊錶可以表示無窮全集合的子集。

鍊錶分為無序鍊錶和有序鍊錶兩種型別。

以下為有序鍊錶實現**:

1 typedef struct node *link;

2struct

node

3node;

78 typedef struct list *set;

9struct

list

10list;

1314

//建立乙個空集合

15set setinit()

1621

22//

判斷集合s是否為空

23int

setempty(set s)

2427

28//

返回集合s的大小

29int

setsize(set s)

3040}41

42//

實現交集運算

43set setintersection(set a,set b)

4463

else

if(a->datadata)

64 a=a->next;

65else

66 b=b->next;67}

68if(p!=q)

69 tmp->first=q->next;

70return

tmp;71}

72//

插入元素x

73void setinsert(int

x,set s)

7483

if(p&&p->data==x)

84return

;85 r=(link)malloc(sizeof

(node));

86 r->data=x;

87 r->next=0;88

if(p==q)//

恰好在頭結點

89 s->first=r;

90else

91 q->next=r;

9293

94 }

view code

用鍊錶實現堆疊

堆疊資料一種後進先出的資料結構,只能在一端 稱為棧頂 top 對資料項進行插入和刪除。基本的堆疊操作是push和pop,push是把乙個新值壓入堆疊的頂部,pop是把堆疊的頂部的值移除並返回這個值。堆疊只提供對它的棧頂值的訪問。堆疊很容易實現,可以用靜態陣列 動態陣列 鍊錶實現堆疊。本文介紹的是鍊錶...

用鍊錶實現棧

基於介面實現 public inte ce stack引用到上次已經實現的鍊錶 linkedlistlist new linkedlist 1 獲取棧的長度 獲取棧的長度 return public int getsize 2 判斷棧是否為空 判斷棧是否為空 return public boolea...

用陣列實現鍊錶(C )

鍊錶可以說是最基本的資料結構,在常見的筆試,面試可能都會有涉及,本文是用陣列來實現鍊錶。其 實現如下 include using namespace std class list bool isempty int length int locate int x 返回表中元素x的位置 bool ret...