用鍊錶來表示集合時,鍊錶的中的每個項表示集合的乙個成員,表示集合的鍊錶所占用的空間正比於所表示的集合的大小,而不是正比於全集合的大小,因此,鍊錶可以表示無窮全集合的子集。
鍊錶分為無序鍊錶和有序鍊錶兩種型別。
以下為有序鍊錶實現**:
1 typedef struct node *link;view code2struct
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 }
用鍊錶實現堆疊
堆疊資料一種後進先出的資料結構,只能在一端 稱為棧頂 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...