c語言線性表和連結串列有什麼區別,C語言 線性表和連結串列有什麼區別

2021-06-30 23:19:02 字數 3065 閱讀 6563

1樓:吉祥二進位制

線性表是最基本、最簡單、也是最常用的一種資料結構。線性表中資料元素之間的關係是一對一的關係,即除了第一個和最後一個資料元素之外,其它資料元素都是首尾相接的。線性表的邏輯結構簡單,便於實現和操作。

因此,線性表這種資料結構在實際應用中是廣泛採用的一種資料結構。

順序表是在計算機記憶體中以陣列的形式儲存的線性表,是指用一組地址連續的儲存單元依次儲存資料元素的線性結構。線性表採用順序儲存的方式儲存就稱之為順序表。順序表是將表中的結點依次存放在計算機記憶體中一組地址連續的儲存單元中。

連結串列是一種物理儲存單元上非連續、非順序的儲存結構,資料元素的邏輯順序是通過連結串列中的指標連結次序實現的。連結串列由一系列結點(連結串列中每一個元素稱為結點)組成,結點可以在執行時動態生成。每個結點包括兩個部分:

一個是儲存資料元素的資料域,另一個是儲存下一個結點地址的指標域。 相比於線性表順序結構,連結串列比較方便插入和刪除操作。

2樓:完顏秀榮樓丙

線性表一般以陣列形式實現,在記憶體中連續存放。

連結串列以連結串列的形式實現,在記憶體中可以不連續存放。

3樓:覃芙沃嬋

在有序表中插入資料後不用再排序了:

1、找到要該插入資料的位置,使得線性表仍然有序;

2、將第1步找到位置後面的資料統一往後移動一位,給要插入資料騰出位置;

3、插入資料。

下面我給的是用陣列實現的,資料都用簡單int:

void

insert(int

a,int

n,intx)

4樓:匿名使用者

線性表有兩種方式:

1.順序線性表 (也就是用陣列實現的,在記憶體中有順序排列,通過改變陣列大小實現)

2.連結串列 (不是用順序實現的,用指標實現,在記憶體中不連續)**不全也不知道上面是做什麼的,給你點提示吧elem是線性表的基地址

length是線性表的長度

線性表的包含:

基地址當前長度

總長度每個表都有初始長度,如果超過了這個長度,可以用函式將這個長度加長

順序表和連結串列有什麼區別??

5樓:乘心宜於初

1.基於儲存的考慮

順序表的儲存空間是靜態分配的,在程式執行之前必須明確規定它的儲存規模,也就是說事先對「maxsize」要有合適的設定,過大造成浪費,過小造成溢位。如果對線性表的長度或儲存規模難以估計時,不宜採用順序表;連結串列不用事先估計儲存規模,但連結串列的儲存密度較低(儲存密度是指一個結點中資料元素所佔的儲存單元和整個結點所佔的儲存單元之比)。

2.基於操作的考慮

在順序表中按序號訪問元素的時間效能為o(1),而連結串列中按序號訪問的時間效能是o(n),所以如果經常做的運算是按序號訪問資料元素,顯然順序表優於連結串列;而在順序表中做插入、刪除時需移動元素,當資料元素的資訊量較多且表較長時,這一點是不應忽視的;在連結串列中作插入、刪除,雖然也要找插入位置,但主要是比較操作,從這個角度考慮顯然連結串列較優。

3.基於開發的語言考慮

順序表容易實現,任何高階語言中都有陣列型別,連結串列的操作是基於指標的,有些語言不支援指標型別,並且相對指標來講順序表較簡單。

總之,兩種儲存結構各有長短,選擇那一種儲存方式應由實際問題決定。通常「較穩定」的線性表選擇順序儲存,而頻繁做插入刪除的即動態性較強的線性表宜選擇鏈式儲存。

#資料結構

6樓:時凌青揭靈

順序表儲存位置是連續的、支援隨機訪問,連結串列可以是不連續的、不能隨機訪問,只能從頭到尾逐個搜尋。

7樓:戈陽童曉楓

單連結串列就是一個節點鏈一個節點的那種

而順序表,通常採用動態陣列的形式。

區別就是記憶體上的區別。

連續與不連續。

操作上的區別,單連結串列在增刪上面有優勢,比順序表效率高。

順序表增刪還需要移動

順序表的優勢,可以通過下標直接索引到該元素,查詢快

8樓:

順序表儲存位置是連續的,一般順序表的長度有限,而連結串列是通過指標來定位下一個元素的位置,所以沒有長度的限制,隨時可以增加。不過連結串列操作起來不如順序表方便,順序表可以通過計算地址來定位需要的元素,連結串列只能從頭到尾來找需要的元素。

9樓:匿名使用者

兩個區別:

1.物理結構上:順序表在記憶體中是依順序存放的,中間沒有間隙;連結串列的元素存放的位置就是隨機的,亂序的.

2.邏輯結構上:順序表可以根據下標來隨機訪問,如a[3]就能訪問到第三個元素,而連結串列不管是單連結串列還是雙連結串列,都必須先訪問到第一個元素得到第二個元素的指標,再通過第二個元素得到第三個元素的指標,它是順序訪問的.

10樓:匿名使用者

順序表儲存位置是相鄰連續的,可以隨即訪問的一種資料結構,一個順序表在使用前必須指定起長度,一旦分配記憶體,則在使用中不可以動態的更改。他的優點是訪問資料是比較方便,可以隨即的訪問表中的任何一個資料。

連結串列是通過指標來描述元素關係的一種資料結構,他可以是實體地址不連續的物理空間。不能隨即訪問連結串列元素,必須從表頭開始,一步一步搜尋元素。它的優點是:

對於陣列,可以動態的改變資料的長度,分配物理空間。

在使用中:如果一個陣列在使用中,查詢比較多,而插入,刪除資料比較少,陣列的長度不變時,選順序表比較合理。如果插入,刪除,長度不定的陣列,可以選連結串列。

問下資料結構中的 線性表、順序表和連結串列之間的特點和區別... 求高手指點下...

11樓:帥得有點壞

線性表、包括順序表和連結串列

順序表裡面元素的地址是連續的,

連結串列裡面節點的地址不是連續的,是通過指標連起來的。

在c語言中,什麼是連結串列呀?

12樓:匿名使用者

呵呵 ls回答的太全面了 我簡單概括一下吧

簡單的說,連結串列就是一串儲存資料的鏈式結構。鏈式的優點在於,每個資料之間都是相關聯的,你如果拿掉其中一個資料,整個連結串列就斷了,需要重新把斷開的部分連上,就像一條鎖鏈一樣。而你要新增一個資料,也要先斷開一個鎖鏈,把資料加進去,再重新連上。

就是這麼簡單!

線性表和順序表的區別,C語言中的線性表 順序表和連結串列到底是什麼關係?

線性表是鏈式儲存結構,用連結串列實現,使用空間多,且合理。而順序表基本上是用陣列實現的,使用空間有限,會造成浪費。順序表 靜態分配。程式執行之前必須明確規定儲存規模。隨機存取結構,主要是進行查詢,很少做插入和刪除操作時順序表。線性表 動態分配。只要記憶體空間尚有空閒,就不會產生溢位。從頭指標起順著掃...

C語言中線性表的結點,前件,後件都是什麼意思

是字首和字尾吧,線性表分為順序表和連結串列,表的結構是由結點連線而成,每個結點就會有前一個結點和後一個結點,前一個就叫字首,後一個就叫字尾了 資料庫中的結點是什麼,請舉個詳細的例子,還有跟結點,前件,後件 節點就是一個資料點,裡面儲存有一定的資料。包括真實資料和用於工作的附加資料,如指標。根節點就是...

如何用c語言編合併兩個順序線性表的程式

1 一開始的思路 把a b都丟進c裡,然後對c排序。人們一開始想到的總是最懶的辦法,往往是最沒效率的。改進 由於a b是排好序的,先把a丟進c裡,再拿b元素一個個往裡查詢插入。這麼做要頻繁移動元素,如果線性表不是連結串列的話,開銷很大。再改進 從a b中各拿一個元素出來,比較後把小的放進c裡,再從剛...