/////wwww,水了一篇blog煎殷,這個(gè)真的沒啥寫的,稀疏矩陣腿箩、散列表豪直、圖這些還沒學(xué),等我學(xué)完了再來用代碼實(shí)現(xiàn)以下他們的操作集
在計(jì)算機(jī)科學(xué)中珠移,集合是一組可變數(shù)量的數(shù)據(jù)項(xiàng)(也可能是0個(gè))的組合弓乙,這些數(shù)據(jù)項(xiàng)可能共享某些特征末融,需要以某種操作方式一起進(jìn)行操作。一般來講唆貌,這些數(shù)據(jù)項(xiàng)的類型是相同的滑潘,或基類相同(若使用的語言支持繼承)。列表(或數(shù)組)通常不被認(rèn)為是集合锨咙,因?yàn)槠浯笮」潭ㄓ锫保聦?shí)上它常常在實(shí)現(xiàn)中作為某些形式的集合使用。
集合的種類包括列表酪刀,集粹舵,多重集,樹和圖骂倘。枚舉類型可以是列表或集眼滤。
一些主要的操作:交、并历涝、補(bǔ)诅需、差、查荧库、判定一個(gè)元素是否屬于某一個(gè)集合
目錄
1列表
2集
3多重集
4關(guān)聯(lián)數(shù)組
5樹
6圖
7抽象概念及其實(shí)現(xiàn)
主條目:列表 (計(jì)算機(jī)科學(xué))
在列表中堰塌,數(shù)據(jù)項(xiàng)的順序是確定的,也可以存在多個(gè)相同的數(shù)據(jù)項(xiàng)分衫。列表支持的操作包括查找項(xiàng)目并找到其位置(若存在)场刑,將項(xiàng)目從列表中刪除,在特定位置插入項(xiàng)目等蚪战。通常的隊(duì)列牵现,或稱FIFO即是一個(gè)列表,該列表只能在一端添加項(xiàng)目邀桑,而在另一端刪除項(xiàng)目瞎疼。而棧,或LIFO則只能在同一端添加或刪除項(xiàng)目壁畸。不管是隊(duì)列還是棧贼急,集合中項(xiàng)目的順序都應(yīng)當(dāng)是一定的,因此這兩種情況只是列表的特例瓤摧。其它列表支持的操作包括排序,再一次說明了其中順序的重要性玉吁。
列表的具體形式包括數(shù)組照弥,鏈表等。
集
主條目:集
與列表不同进副,在集中这揣,數(shù)據(jù)項(xiàng)是無序的悔常,也不允許存在相同數(shù)據(jù)項(xiàng)。集支持添加给赞、刪除和查找項(xiàng)目机打。一些語言內(nèi)建對集的支持,而在其它語言中片迅,可以利用散列表實(shí)現(xiàn)集残邀。
多重集
主條目:多重集
多重集的行為類似于集,其中數(shù)據(jù)項(xiàng)是無序的柑蛇。但在多重集中芥挣,可以存在相同的數(shù)據(jù)項(xiàng)。多重集支持的操作包括添加耻台、刪除項(xiàng)空免,查詢相同項(xiàng)在多重集中出現(xiàn)的次數(shù)。多重集可以通過排序轉(zhuǎn)換成列表盆耽。
關(guān)聯(lián)數(shù)組
主條目:關(guān)聯(lián)數(shù)組
關(guān)聯(lián)數(shù)組(或稱查找表蹋砚,字典等)的行為和字典相似,為鍵(例如字典中的單詞)輸入提供一個(gè)值(如字典中的定義)輸出摄杂。值可以是對復(fù)雜數(shù)據(jù)結(jié)構(gòu)的引用坝咐。通常使用散列表實(shí)現(xiàn)高效率的關(guān)聯(lián)數(shù)組。
樹
主條目:樹 (數(shù)據(jù)結(jié)構(gòu))
二叉樹是樹的一種類型
在樹中匙姜,“根”節(jié)點(diǎn)與一定數(shù)量的數(shù)據(jù)項(xiàng)以親-子關(guān)系聯(lián)系起來畅厢,而其子數(shù)據(jù)項(xiàng)也與另外的數(shù)據(jù)項(xiàng)以同樣的方式聯(lián)系。除了根節(jié)點(diǎn)的每個(gè)項(xiàng)都有且只有一個(gè)父節(jié)點(diǎn)氮昧,并可能有一些子節(jié)點(diǎn)框杜。樹支持的操作包括遍歷,插入等袖肥。用于排序操作的樹通常稱為堆咪辱。通常使用樹來保存存在包含親-子關(guān)系的數(shù)據(jù),例如菜單椎组,目錄及其中文件等油狂。
圖
主條目:圖 (數(shù)據(jù)結(jié)構(gòu))
一張6節(jié)點(diǎn)圖
在圖中,每個(gè)數(shù)據(jù)項(xiàng)都可以與一個(gè)或多個(gè)其它數(shù)據(jù)項(xiàng)聯(lián)系起來寸癌,其中每個(gè)節(jié)點(diǎn)都是平等的专筷,類似于無根節(jié)點(diǎn)、無親-子關(guān)系的樹蒸苇。圖支持的操作包括遍歷磷蛹,查找等。圖常常用于對實(shí)際問題進(jìn)行建模溪烤,并解決這些問題味咳。在生成樹協(xié)議中庇勃,建立一張代表網(wǎng)絡(luò)結(jié)構(gòu)的圖(或稱網(wǎng)格),從而了解應(yīng)當(dāng)斷開哪些鏈路以避免數(shù)據(jù)回圈槽驶。
抽象概念及其實(shí)現(xiàn)
如上所述责嚷,集合,以及集合的各種分類都只是抽象概念掂铐。由于名字相同或相似罕拂,集合及其在各種語言中的實(shí)現(xiàn)常常會造成文字上的混淆。集合堡纬,列表聂受,集,樹等名字究竟是數(shù)據(jù)結(jié)構(gòu)烤镐,抽象數(shù)據(jù)類型抑或類只能通過具體分析來確定蛋济。其中,集合則是計(jì)算問題的解決方案中抽象程度最高的概念炮叶。從這個(gè)方面來看碗旅,若過于關(guān)注其實(shí)現(xiàn),則可能會對理解集合的數(shù)學(xué)概念產(chǎn)生反作用镜悉。