在C語言中陣列和連結串列有什麼區別

時間 2021-09-12 11:20:53

1樓:匿名使用者

要說這個區別,你要先知道資料結構。要說清楚資料結構要一本書的內容,所以我只能抽個直接相關的東東來說一下:線性表。

線性表:

邏輯上 是一張二維表,裡面有元素和相應元素的位置。

物理上 線性表以兩種形式在記憶體中存放:順序表和鏈式表。

這順序表要求:在記憶體中連續的記憶體地址存放。(可看成陣列)

而鏈式表不要求以連續的記憶體塊平存放,它有一個指標域來索引到下一個節點。(連結串列)

效能上分析:

順序表(陣列)可直接索引到某個元素,而連結串列只能從連結串列頭(如果為單連結串列)開始一個一個去找,所以比順序表要低效。

另外一方面,如果順序表要刪除或插入元素就要移動多個後面的元素,而連結串列則不用移動元素,只要修改指標域就行了,所以在有刪除或修改動作時,連結串列比較高效。

當然我說的還很不全面,你可以參考一下資料結構這本書的線性表這章。

2樓:

陣列和連表最大的區別是:陣列需要定義長度,連表不需要。

3樓:匿名使用者

二者都屬於一種資料結構

從邏輯結構來看

1. 陣列必須事先定義固定的長度(元素個數),不能適應資料動態地增減的情況。當資料增加時,可能超出原先定義的元素個數;當資料減少時,造成記憶體浪費;陣列可以根據下標直接存取。

2. 連結串列動態地進行儲存分配,可以適應資料動態地增減的情況,且可以方便地插入、刪除資料項。(陣列中插入、刪除資料項時,需要移動其它資料項,非常繁瑣)連結串列必須根據next指標找到下一個元素

從記憶體儲存來看

1. (靜態)陣列從棧中分配空間, 對於程式設計師方便快速,但是自由度小2. 連結串列從堆中分配空間, 自由度大但是申請管理比較麻煩從上面的比較可以看出,如果需要快速訪問資料,很少或不插入和刪除元素,就應該用陣列;相反, 如果需要經常插入和刪除元素就需要用連結串列資料結構了。

一維陣列和二維陣列有什麼區別麼,C語言中一維陣列與二維陣列有什麼區別和共同點?

小周高等教育 答疑 單行或單列的陣列,稱為一維陣列,多行多列 含2行2列 的陣列是二維陣列。陣列和陣列公式的區別 陣列,就是元素的集合,按行 列進行排列。陣列公式 就是包含有陣列運算的公式。ctrl shift enter,三鍵結束,這個過程就是告訴excel請與陣列運算的方式來處理本公式,反饋一個...

c語言中if和switch有什麼區別

布依秋 總體來說,if語句由於在英語字面上意思比較直觀,就是 如果 所以比較容易理解。就是對 如果 情況的判斷和處理。而 switch 的功能其實和if差不多,但是比較容易出錯的地方就是,在switch語句中,如果在分支中不加break。容易造成邏輯的錯誤。新手很容易犯這個錯誤 湯贊悅 if 用於單...

c語言中和有什么區別,c語言中「 」和「 」有什麼區別?

c語言中,表示賦值 如a b,表示把b的值賦給a 表示等於 如a b,表示a與b相等!等號是 賦值號是 int a 1,是把1賦值給a,a 1,就是a是常值1 有區別 是 賦值語句,用來判斷是否相等 如 if x 10 x如果等於10 則括號裡的值是1執行,x不等於10 則括號裡的值是0 不執行如果...