1.題目要求:
以字元的形式輸入集合a,集合b,求兩個集合的交集、並集。
2.題目解析
因為涉及到的資料型別是字元型,所以尤其要主要空格對輸入資料的影響。可以使用**getchar()**語句來「吃掉」空格。
3.交並集演算法思路
(1)並集:設乙個標誌位為0(建議往下看你就會明白為什麼設定乙個標誌位flag=0)先用迴圈語句將集合a中的元素都複製到集合c中,然後再在集合b中尋找在集合a中沒有出現過的元素,置標誌位為1,當標誌位為1時,說明在集合b中找到了在集合a中沒有的元素,然後依據尾插法插入到集合c中去。
(2)交集:與求並集相類似,利用雙迴圈在集合a中找到與集合b中的相等元素,如果元素相等則將元素依據尾插法插入到集合c中去。
4.**實現
/**
* 下面是單鏈表的應用,集合的交並集
*/#include
#include
#include
typedef
struct lnode
lnode,
*linklist;
//建立頭結點
void
initlist
(linklist *l)
(*l)
->next=
null;}
//尾插法建立鍊錶
void
creatlist_tail
(linklist *l)
r->next=
null;}
void
diplist
(linklist l)
}//集合的並運算
void
union
(linklist l1,linklist l2,linklist *l3)
for(p=l2->next;p!=
null
;p=p->next)}if
(flag==0)
//說明集合b中有集合a中沒有的元素,此時尾插法插入到集合a中
flag=0;
//重置標誌位
} r->next=
null;}
intinterlinkcollection
(linklist l1,linklist l2,linklist *l3)}}
r->next=
null
;return reg;
}int
main()
單鏈表在集合中的應用(交 並 差)
include using namespace std define maxsize 20 define true 1 define false 0 typedef bool status status是函式的型別,其值是函f數結果狀態 typedef char elemtype elemtype型...
線性表之單鏈表求集合並集
掌握以下內容 1 單鏈表的建立 2 將資料插入單鏈表 3 單鏈表合併 4 單鏈表去重 2020 10 20 typedef char elem typedef struct lnode lnode 將結構體命名為lnode int initlist lnode l l next null retur...
用單鏈表實現對集合的交,並,差的操作
我是乙個菜鳥本科生,第一次寫部落格,排版有些亂,和正在學習資料結構的小哥哥們一起交流分享。用單鏈表實現集合的判等,交,並,差,基本涉及到了單鏈表常用的一些操作,如建表,插入,刪除,遍歷,都不算太難。首先建表,在建表的過程中,將集合中的元素存入到了鍊錶中,單此時的鍊錶中的元素是無序的,在函式sort ...