#include
using
namespace std;
#define maxsize 20
#define true 1
#define false 0
typedef
bool status;
/* status是函式的型別,其值是函f數結果狀態***/
typedef
char elemtype;
/* elemtype型別根據實際情況而定,這裡假設為int */
typedef
struct node linklist;
void
displaylist
(linklist* list)
cout << endl;
}void
initlist
(linklist*
& list)
void
createlistathead
(linklist*
& list, elemtype arr,
int len)
}void
createlistattail
(linklist*
& list, elemtype arr,
int len)
p->next =
null;}
status listinsert
(linklist*
& list,
int position, elemtype e)
if(count != position -1)
return false;
temp =
new node;
temp-
>data = e;
temp-
>next = p-
>next;
p->next = temp;
return true;
}status listdelete
(linklist*
& list,
int position, elemtype& e)
if(count != position -1)
return false;
temp = p-
>next;
e = temp-
>data;
p->next = p-
>next-
>next;
delete temp;
return true;
}void
clearlist
(linklist*
& list)
}status listempty
(linklist* list)
intlistlength
(linklist* list)
return count;
}status getelem
(linklist* list,
int position, elemtype& e)
e = p-
>data;
return true;
}int
locateelem
(linklist* list, elemtype e)
return0;
}void
destroylist
(linklist*
& list)
/*去兩個集合的合集, la和lb位要去合集的物件, lc為結果*/
void
unionlist
(linklist *la, linklist *lb, linklist *
&lc)
for(i =
1; i <= lenb; i++)}
void
commonlist
(linklist *la, linklist *lb, linklist *
&lc)
}void
differencesetlist
(linklist *la, linklist *lb, linklist *
&lc)
}int
main()
; elemtype list_b[5]
=;createlistattail
(lista, list_a,5)
; cout <<
"線性表a的元素是:"
;displaylist
(lista)
;createlistattail
(listb, list_b,6)
; cout <<
"線性表b的元素是:"
;displaylist
(listb)
;initlist
(listc)
;initlist
(listd)
;initlist
(liste)
;initlist
(listf)
; cout <<
"a ∪ b: "
;unionlist
(lista, listb, listc)
;displaylist
(listc)
; cout <<
"a ∩ b: "
;commonlist
(lista, listb, listd)
;displaylist
(listd)
; cout <<
"a - b: "
;differencesetlist
(lista, listb, liste)
;displaylist
(liste)
; cout <<
"b - a: "
;differencesetlist
(listb, lista, listf)
;displaylist
(listf)
;return0;
}
用單鏈表實現對集合的交,並,差的操作
我是乙個菜鳥本科生,第一次寫部落格,排版有些亂,和正在學習資料結構的小哥哥們一起交流分享。用單鏈表實現集合的判等,交,並,差,基本涉及到了單鏈表常用的一些操作,如建表,插入,刪除,遍歷,都不算太難。首先建表,在建表的過程中,將集合中的元素存入到了鍊錶中,單此時的鍊錶中的元素是無序的,在函式sort ...
單鏈表應有之求集合的交並集
1.題目要求 以字元的形式輸入集合a,集合b,求兩個集合的交集 並集。2.題目解析 因為涉及到的資料型別是字元型,所以尤其要主要空格對輸入資料的影響。可以使用 getchar 語句來 吃掉 空格。3.交並集演算法思路 1 並集 設乙個標誌位為0 建議往下看你就會明白為什麼設定乙個標誌位flag 0 ...
順序表集合的交並差操作
1.用順序表表示集合,設計乙個演算法實現集合的求交集運算 void intersection sqlist a,sqlist b,sqlist c int i,j,k k記錄c中的元素個數 for i 0 i2.用順序表表示集合,設計乙個演算法實現集合的求並集運算 void union sqlist...