刪除單鏈表中多余的重復(fù)元素 常用多維數(shù)據(jù)結(jié)構(gòu)有哪些?
常用多維數(shù)據(jù)結(jié)構(gòu)有哪些?八種常用的數(shù)據(jù)結(jié)構(gòu)是:數(shù)組、棧、鏈表、隊(duì)列、樹、圖、堆、哈希表等。1.排列Array是一種聚合數(shù)據(jù)類型,是幾個(gè)相同類型的變量按順序組織的集合。數(shù)組可以說是最基本的數(shù)據(jù)結(jié)構(gòu),在各
常用多維數(shù)據(jù)結(jié)構(gòu)有哪些?
八種常用的數(shù)據(jù)結(jié)構(gòu)是:數(shù)組、棧、鏈表、隊(duì)列、樹、圖、堆、哈希表等。
1.排列
Array是一種聚合數(shù)據(jù)類型,是幾個(gè)相同類型的變量按順序組織的集合。數(shù)組可以說是最基本的數(shù)據(jù)結(jié)構(gòu),在各種編程語言中都有對(duì)應(yīng)關(guān)系。一個(gè)數(shù)組可以分解成多個(gè)數(shù)組元素。根據(jù)數(shù)據(jù)元素的類型,數(shù)組可以分為整數(shù)數(shù)組、字符數(shù)組、浮點(diǎn)數(shù)組、指針數(shù)組和結(jié)構(gòu)數(shù)組。數(shù)組也可以有一維、二維和多維表示。
第二步:堆疊
Stack是一種特殊的線性表,只能在表的固定端插入和刪除數(shù)據(jù)節(jié)點(diǎn)。Stack按照后進(jìn)先出的原則存儲(chǔ)數(shù)據(jù),即先插入的數(shù)據(jù)會(huì)被壓入棧底,最后插入的數(shù)據(jù)會(huì)在棧頂。讀取數(shù)據(jù)時(shí),從棧頂開始逐個(gè)讀取。堆棧通常用于保護(hù)匯編語言程序中的重要數(shù)據(jù)。當(dāng)堆棧中沒有數(shù)據(jù)時(shí),稱為空堆棧。
3.長隊(duì)
隊(duì)列和棧一樣,也是一種特殊的線性表。與棧不同,隊(duì)列只允許在表的一端插入,在另一端刪除。一般來說,插入操作的結(jié)尾稱為隊(duì)列的尾部,刪除操作的結(jié)尾稱為隊(duì)列的頭部。當(dāng)隊(duì)列中沒有元素時(shí),稱為空隊(duì)列。
4.鏈表
鏈表是一種數(shù)據(jù)元素按照鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu),其特點(diǎn)是物理不連續(xù)。鏈表由一系列數(shù)據(jù)節(jié)點(diǎn)組成,每個(gè)節(jié)點(diǎn)包括一個(gè)數(shù)據(jù)字段和一個(gè)指針字段。指針字段保存數(shù)據(jù)結(jié)構(gòu)中下一個(gè)元素的地址。鏈表結(jié)構(gòu)中數(shù)據(jù)元素的邏輯順序是通過鏈接鏈表中的指針來實(shí)現(xiàn)的。
5.樹
樹是一種典型的非線性結(jié)構(gòu),它是一個(gè)有兩個(gè)節(jié)點(diǎn)的有限集合k。在樹形結(jié)構(gòu)中,只有一個(gè)根節(jié)點(diǎn),沒有前任節(jié)點(diǎn)。樹結(jié)構(gòu)中的所有其他節(jié)點(diǎn)只有一個(gè)前任節(jié)點(diǎn),可以有兩個(gè)繼任者,m≥0。
6.圖表
圖形是另一種非線性數(shù)據(jù)結(jié)構(gòu)。在圖結(jié)構(gòu)中,數(shù)據(jù)節(jié)點(diǎn)一般稱為頂點(diǎn),邊是有序的偶數(shù)對(duì)頂點(diǎn)。如果兩個(gè)頂點(diǎn)之間有邊,說明這兩個(gè)頂點(diǎn)相鄰。
7.許多
堆是一種特殊的樹型數(shù)據(jù)結(jié)構(gòu),通常討論的堆是二進(jìn)制堆。堆的特點(diǎn)是根節(jié)點(diǎn)的值是所有節(jié)點(diǎn)中最小或最大的,根節(jié)點(diǎn)的兩個(gè)子樹也是一個(gè)堆結(jié)構(gòu)。
8.哈希列表
哈希表源于Hash函數(shù),它的思想是如果結(jié)構(gòu)中有一條k
單鏈表和循環(huán)單鏈表,鏈表為空的條件分別是?
判斷是否有周期的方法:
對(duì)于任一節(jié)點(diǎn),判斷其下一個(gè)值是否與任一上一個(gè)節(jié)點(diǎn)地址相同。有一樣就有循環(huán)。
鏈接列表為空:
前導(dǎo)單鏈表:h:head-gtnexthead
沒有頭的循環(huán)鏈表:listNULL