1. 「線性表」與「結構體數組」的區別與聯系分別是什麼
首先要明白數組在內存中是連續分布的,順序存放,一個數組站一塊內存。
但是一個線性表在內存中可能不是連續的,是分散存放的,表的節點可能分布的很散,所以需要在節點中包含指向下一個節點的指針來找到下一個節點。
數組一定義,大小就不能更改了,系統給數組分配了一塊內存。線性表的大小是可以變的。
線性表的一個節點就是一個結構體,結構體中的元素在內存中是連續存放的。所以結構體數組在內存中是連續站用的一塊內存。
線性表是分散佔用了很多塊內存,每個表節點(就是一個結構體)佔用一塊連續內存,各個節點一般在內存中是不連續的。
舉個例子:
有個結構體數組和線性表,大小是1G;假設計算機內存4G,這時候空閑了2G的內存,這2G的內存可能是分成了很多小塊零散的分布的。所以這時候如果用結構體數組的話可能會失敗,因為計算機內存可能沒有一整塊1G的空閑內存空間來放置數組;但是用線性表就可以用內存中分散的空餘空間來保存這些數據。
2. 順序存儲的線性表和一維數組有何區別 能夠用一位數組實現順序存儲的所有功能嗎
標准上得一維數組和線性表自然不同。 一個是靜態固定分配的,一個是可以動態分配空間的,
自然是線性表的功能更強大。但是本質上所存儲的東西都是一樣。
主要的是在於,我們一般生活中的問題是不知道具體有多少數據的,所以,靜態的不好固定。
這就是區別,後面的問題可想而知了
3. 數組與一般線性表的區別主要在於什麼
一樣的,線性表元素多一點而已。線性表一般結構體數組。
4. 數據結構線性表跟C+數組有什麼區別
線性表是一種抽象的數據結構。
數組只是線性表的一種具體實現。
就像線性表同樣可以使用鏈表來實現一樣。
由數組實現的線性表自然有長度要小於數組的長度這樣的規定啦。
5. 線性表兩種 存儲結構各自的優缺點有哪些
線性表的鏈式存儲結構:
優點:
插入和刪除不需要移動插入時只需要對插入位置後的一個元素進行操作,不需要大量的移動元素。空間有效利用高。
缺點:
大量訪問操作時不如順序存儲結構,因為每次都需要從頭開始遍歷整個線性表直到找到相應的元素為止。
線性表的順序存儲結構:
優點:
可隨機存取表中任一元素。因為有下標可以操作可以快速的定位到指定位置的元素,但是不知道位置的話也需要順序遍歷。
缺點:
插入或刪除操作時,需大量移動元素。合適在很少進行插入和刪除運算的情況下。
(5)線性表和數組存儲的區別擴展閱讀:
線性表的特徵
集合中必存在唯一的一個「第一元素」。
集合中必存在唯一的一個 「最後元素」 。
除最後一個元素之外,均有唯一的後繼(後件)。
除第一個元素之外,均有唯一的前驅(前件)。
線性表的基本操作
MakeEmpty(L) 這是一個將L變為空表的方法。
Length(L) 返回表L的長度,即表中元素個數。
Get(L,i) 這是一個函數,函數值為L中位置i處的元素(1≤i≤n)。
Prior(L,i) 取i的前驅元素。
Next(L,i) 取i的後繼元素。
Locate(L,x) 這是一個函數,函數值為元素x在L中的位置。
Insert(L,i,x)在表L的位置i處插入元素x,將原占據位置i的元素及後面的元素都向後推一個位置。
Delete(L,p) 從表L中刪除位置p處的元素。
IsEmpty(L) 如果表L為空表(長度為0)則返回true,否則返回false。
Clear(L)清除所有元素。
Init(L)同第一個,初始化線性表為空。
Traverse(L)遍歷輸出所有元素。
Find(L,x)查找並返回元素。
Update(L,x)修改元素。
Sort(L)對所有元素重新按給定的條件排序。
strstr(string1,string2)用於字元數組的求string1中出現string2的首地址。
參考資料來源:網路-線性表
6. 一般線性表和數組有什麼區別各有什麼特點
你指的是線性鏈表吧?
區別主要在動態分配上,現代語言支持動態數組,可以在運行期決定數組大小,但早期語言並不支持,因此數組必須在編譯器確定大小。
而線性鏈表可以動態決定大小,隨時刪減添加,並且能夠知道元素個數。數組除非用動態定義否則你要自己知道元素個數。比如c89就不支持動態數組,但c99支持。iso c++也不支持,但c+0x支持。
在支持動態數組的情況下,區別主要是,能否刪除任意元素。數組是整體創建,整體刪除的
7. 線性表的順序存儲結構和一維數組有什麼區別哪個是靜態存儲空間
順序表是計算機內以一維數組形式表示的線性表,
線性表有鏈式存儲存與順序儲存兩種方式:
1,順序儲存結構是指用一組地址連續的存儲單元依次存儲數據元素的線性結構。
2,鏈式存儲是線性表採用指針連接的方式存儲。
線性表的長度是隨著線性表的插入刪除操作的進行而變化的,在任意時刻線性表的長度小於等於數組的長度,線性表的順序儲存是動態的,而一維數組是靜態的。
8. 數據結構,求問線性結構和線性表有什麼區別呢謝謝
常用的線性結構有:線性表,棧,隊列,數組,串。線性表是多個相同元素組成的有限線性序列。棧是一種特殊線性表,它將插入和刪除限制在表的一端進行,是一種後進先出表。
隊列也是一種操作受限的特殊線性表,它只允許在表的前端進行刪除操作,而在表的後端進行插入操作。
順序存儲結構在計算機內用一組連續的內存單元來存儲數組。一堆數組本身就是順序表結構,多維數組是一種特殊的線性結構。串是一種數據元素固定為字元的線性表。
串上的操作是針對串的整體或串的某一部分子串進行的,而線性表是針對線性表上的某個數據元素進行的
另外,線性表是最基本、最簡單、最常用的一種數據結構。線性表中數據元素之間的關系是一對一的關系,即除了第一個和最後一個數據元素之外,其它數據元素都是首尾相接的,但這只適用大部分線性表,而不是全部。在數據結構邏輯層次上細分,線性表可分為一般線性表和受限線性表。
9. 一維數組和線性表的區別
一般來講,線性表的長度是可變的一維數組不同的語言則不同,例如,c語言中一維數組的大小是固定的,但VB中就是可變的
10. C語言,順序線性表和傳統數組有什麼區別
在結構體里定義一個數組,這樣的好處在於可以用一個域表示順序表中有效數據的個數,並與存儲順序表的數組比較緊密地結合在一起。
而直接定義數組的話,往往是用另外一個單獨的變數來存儲順序表中有效數據的個數。這個變數與數組的關系就比較鬆散,靠編程者自己掌握才比較方便,用來交流時的可讀性就差了一點。