『壹』 一個順序表所佔用的存儲空間什麼有關
和存儲的元素個數有關,也和每個元素所佔空間有關
『貳』 線性表中所有的元素所佔的存儲空間是連續的,是什麼意思
線性表中有鏈表和順序表兩類,順序表所佔的存儲空間必須連續,鏈表沒有這個要求,連續指的是存儲空間的連續,順序存儲結構中,線性表中每一個數據元素在計算機存儲空間中的存儲地址由該元素在線性表中的位置序號唯一確定。
線性表是最常用的數據結構,它由一組數據元素組成。
注意:這里的數據元素是一個廣義的數據元素,並不僅僅是指一個數據。如,矩陣、學生記錄表等。
非空線性表的結構特徵:
有且只有一個根結點,它無前件
有且只有一個終端結點,它無後件
除根結點和終端結點之外,所有的結點有且只有一個前件和一個後件。線性表中結點的個數稱為結點的長度n。當n=0時,稱為空表。
『叄』 線性表的鏈式儲存結構與順序儲存結構所需要的空間是相同的嗎
順序存儲需要開辟一個定長的空間,讀寫速度快,缺點不可擴充容量(如果要擴充需要開辟一個新的足夠大的空間把原來的數據重寫進去)
鏈式存儲無需擔心容量問題,讀寫速度相對慢些,由於要存儲下一個數據的地址所以需要的存儲空間比順序存儲大。
我感覺java數據結構沒有c、c++來的重要。
『肆』 線性表的鏈式存儲結構與順序存儲結構所需的存儲空間一樣嗎
不一樣,線性存儲每個元素只要存元素的內容,鏈式存儲還需要多一塊區域來存儲相鄰節點的地址
『伍』 鏈接存儲的存儲結構所佔存儲空間_______。
寫在前面的話:數據結構很多人都是只看不去實戰,這樣很難取得很好的效果,我會在每個知識點下面配套幾道從Leetcode和劍指offer上找到的經典題目(比如本章說完鏈表以後,會配套LeetCode.206等題目)。
程序這種東西還是多敲鍵盤比較好,紙上得來終覺淺,絕知此事要躬行。
數據結構中的線性表 是理解圖,堆棧,二叉樹的基礎,他的官方定義為:
線性表 是 零個或多個數據元素的有限序列。
比如:a1, a2, a3 ,a4, ...... , ai-1, ai, ai+1,....., an
ai-1 是ai的前驅元素,而ai+1是ai的後繼元素。我們可以得知,當i=2, ...., n-1時,他們只有唯一的一個前驅元素和後繼元素。
並且,在線性表中,a1~an所代表的元素必須是相同的數據類型的元素。(比如a1-an代表有n個不同類型的人,但他們都是人,你不能在其中添加一個帽子的存儲)。
線性表在物理結構上可以分為:順序存儲結構和鏈表存儲結構。
第一節:首先我們了解下順序存儲結構:
順序存儲結構就是在內存空間中開辟一片連續的空間,然後把數據按照順序進行存儲的一種方式。
他包含三個屬性:1、存儲空間的起始位置(也就代表我們定義了一個數組)2、最大的存儲容量(數組最大長度)3、線性表的當前長度
屬性2和3的區別是:數組的長度是基本不變的,這是我們在申請內存空間的時候就已經確定好的,而我們的線性表的長度是代表著元素個數,是不確定的長度。則兩者的關系為: 線性表的當前長度<=數組長度;
1 順序存儲結構的插入與刪除:
1.1、插入思路:
①、我們首先需要考慮異常(插入位置異常,插入後的長度異常等)
②、從最後一個元素遍歷到插入位置,分別將每一個元素向後移動一個位置;
③、插入目標元素,表長加1;
1.2、刪除思路:
①、我們仍然需要首先考慮異常(刪除位置錯誤等)
②、查找到需要刪除的位置,遍歷將其後的每一個元素向前進行移動。
2 總結
我們可以看出,在插入演算法中,順序存儲結構中元素在插入位置的過程中,多數元素都需要進行移動,來給插入的元素騰位置。並且,在刪除演算法中也是類似的道理。我們計算下他們的時間復雜度:順序存儲結構在讀取數據的時候,因為可以按照list[index]進行讀取,所以時間復雜度為O(1),但在插入和刪除演算法的時候,平均的時間復雜度為O(n);
我們可以看出順序存儲結構的優點和缺點:
優點是:不需要為表示元素之間的邏輯關系而增加額外存儲空間,可以快速的存取表中的任一位置的元素。
缺點是:插入和刪除操作需要移動大量的元素。當線性表變化較大的時候,難以確定存儲空間的容量。
『陸』 (1)下列敘述中正確的是 A)線性表的鏈式存儲結構與順序存儲結構所需要的存儲空間是相同的 B)線性表
下列敘述中正確的是
A.線性表的鏈式存儲結構與順序存儲結構所需要的存儲空間是相同的
B.線性表的鏈式存儲結構所需要的存儲空間一般要多於順序存儲結構
C.線性表的鏈式存儲結構所需要的存儲空間一般要少於順序存儲結構
D.上述三種說法都不對
正確答案:B。線性表的鏈式存儲結構所需要的存儲空間一般要多於順序存儲結構。
『柒』 線性表採用鏈表存儲時,結點之間和結點內部的存儲空間可以是不連續的。 C++里,這句話對不對 結點
正確。隊列先進先出的棧是先進後出的它們都是線性表線性表是最基礎、最常用的數據結構,線性表中數據元素都是一對一的對應關系。可以不連續,存儲空間分兩段,一段存放數據,另一段存放著地址。
順序存儲需要開辟一個定長的空間,讀寫速度快,缺點不可擴充容量(如果要擴充需要開辟一個新的足夠大的空間把原來的數據重寫進去)。
(7)線性表所佔的存儲空間擴展閱讀:
物理位置相鄰表示線性表中數據元素間的邏輯關系,可隨機存取表中任一元素。鏈式表示指的是用一組任意的存儲單元存儲線性表中的數據元素,稱為線性表的鏈式存儲結構。
存儲單元可以是連續的,也可以是不連續的。在表示數據元素之間的邏輯關系時,除了存儲其本身的信息之外,還需存儲一個指示其直接後繼的信息,這兩部分信息組成數據元素的存儲映像,稱為結點。
『捌』 鏈表中每個節點所佔用的儲存空間是連續的,但節點之間在空間上可以連續也可以不連續 對這句話不是很明白
一個鏈表有很多個節點,各個節點之間通過指針連接起來,所以各個結點之間的位置可以不連續,也就是可以放在不同的位置,所以在空間上可以是不連續的;但對於一個節點,因為節點內部是一個整體,所以就要佔用連續的存儲空間。
隊列是先進先出的棧是先進後出的都是線性表線性表是最基礎、最常用的數據結構,線性表中數據元素都是一對一的對應關系。可以不連續,它的存儲空間分兩段,一段存放數據,另一段存放著地址,鏈表是通過地址將數據串聯起來的數組必須是連續的存儲空間。
(8)線性表所佔的存儲空間擴展閱讀:
一個鏈表或者多個鏈表使用獨立的存儲空間,一般用數組或者類似結構實現,優點是可以自動獲得一個附加數據:唯一的編號,並且方便調試;缺點是不能動態的分配內存。當然,另外的在上面加一層塊狀鏈表用來分配內存也是可以的,這樣就解決了這個問題。
這種方法有時候被叫做數組模擬鏈表,但是事實上只是用表示在數組中的位置的下標索引代替了指向內存地址的指針,這種下標索引其實也是邏輯上的指針,整個結構還是鏈表,並不算是被模擬的(但是可以說成是用數組實現的鏈表)。