線性表的存儲結構圖解
㈠ 若頻繁地對一個線性表進行插入和刪除操作,該線性表宜採用何種存儲結構為什麼
採用鏈式存儲結構。
根據實際需要申請內存空間,而當不需要時又可以將不用節點空間返還給系統。在鏈式存儲結構中插入和刪除操作不需要移動元素。
1、比順序存儲結構的存儲密度大(鏈式存儲結構中每個結點都由數據域與指針域兩部分組成,相比順序存儲結構增加了存儲空間)。
2、邏輯上相鄰的節點物理上不必相鄰。
3、插入、刪除靈活 (不必移動節點,只要改變節點中的指針)。
(1)線性表的存儲結構圖解擴展閱讀;
一般在計算機的硬碟中,文件都是鏈式存儲的。多個扇區組成一個簇,簇是計算機存儲數據的基本單位。而一個文件是存儲在多個在空間上也許並不相連的簇中的。這就是鏈式存儲。但是為了能夠讀取出這個文件,計算機會在該文件第一部分的尾部寫上第二部分所在的簇號。
第二部分的尾部又寫上第三部分,以此類推,最後一部分寫上一段代碼,表示這是該文件的最後一部分。值得一提的是,高簇號在後。(如代碼所示的1234實為簇3412)文件所佔簇可認為是隨機分配的。
㈡ 什麼是線性表線性表有哪兩種存儲結構它們是如何存儲數據元素的各有什麼優點
線性表:有n(n>0)的數據元素a1,a2,a3,.....,an組成的有限序列。
兩種存儲結構:
順序存儲結構:存取較快,插入刪除較麻煩。
鏈式存儲結構:存取較慢,插入刪除叫簡單。
存儲數據元素:
順序存儲結構:直接存取。優點空間連續,位置明確。
鏈式存儲結構:由於鏈表特徵,需要從表頭掃面。優點空間分散,位置不明確。
線性表中數據元素之間的關系是一對一的關系,即除了第一個和最後一個數據元素之外,其它數據元素都是首尾相接的,注意,這句話只適用大部分線性表,而不是全部。比如,循環鏈表邏輯層次上也是一種線性表。
(2)線性表的存儲結構圖解擴展閱讀:
線性表中的個數n定義為線性表的長度,n=0時稱為空表。在非空表中每個數據元素都有一個確定的位置,如用ai表示數據元素,則i稱為數據元素ai在線性表中的位序。
線性表的相鄰元素之間存在著序偶關系。如用(a1,…,ai-1,ai,ai+1,…,an)表示一個順序表,則表中ai-1領先於ai,ai領先於ai+1,稱ai-1是ai的直接前驅元素,ai+1是ai的直接後繼元素。
當i=1,2,…,n-1時,ai有且僅有一個直接後繼,當i=2,3,…,n時,ai有且僅有一個直接前驅。
㈢ 線性表的鏈式存儲結構優於順序存儲結構
線性表的鏈式存儲結構優於順序存儲結構,這句話是錯誤的。
線性表的存儲結構:
線性表主要由順序表示或鏈式表示。在實際應用中,常以棧、隊列、字元串等特殊形式使用。順序表示指的是用一組地址連續的存儲單元依次存儲線性表的數據元素,稱為線性表的順序存儲結構或順序映像。它以「物理位置相鄰」來表示線性表中數據元素間的邏輯關系,可隨機存取表中任一元素。
鏈式表示指的是用一組任意的存儲單元存儲線性表中的數據元素,明純稱為線性表的鏈式存儲結構。它的存儲單元可以是連續的,也可以是不連續的。在表示數據元素之間的邏輯關系時,除了存儲其本身的信息之外,還需存儲一個指示其直接後繼的信息(即直接後繼的存儲位置),這兩部分信息組成數據元素的存儲映像,稱為結點(node)。
它包括兩個域:存儲數據元素信息的域稱為數激卜咐據域;存儲直接後繼存儲位置的域稱為指針域。指針域中存儲的信息稱為指針或鏈。
㈣ 存儲結構有哪幾種
存儲結構有:
1、鏈接存儲:在計算機中用一組任意的存儲單元存儲線性表的數據元素(這組存儲單元可以是連續的,也可以是不連續的)。
例:鏈。
2、順序存儲:在計算機中用一組地址連續的存儲單元依次存儲線性表的各個數據元素,稱作線性表的順序存儲結構。
例:數組,鏈。
3、索引存儲:除建立存儲結點信息外,還建立附加的索引表來標識結點的地址,索引表由若干索引項組成。
例:線索樹。
4、散列存儲:散列存儲,又稱hash存儲,是一種力圖將數據元素的存儲位置與關鍵碼之間建立確定對應關系的查找技術。
例:棧(既可以通過順序存儲也可以同通過隨機存儲)。
順序存儲和鏈接存儲的基本原理:
在順序存儲中,每個存儲空間含有所存元素本身的信息,元素之間的邏輯關系是通過數組下標位置簡單計算出來的線性表的順序存儲,若一個元素存儲在對應數組中的下標位置為i,則它的前驅元素在對應數組中的下標位置為i-1,它的後繼元素在對應數組中的下標位置為i+1。
在鏈式存儲結構中,存儲結點不僅含有所存元素本身的信息,而且含有元素之間邏輯關系的信息。
在數據的順序存儲中,由於每個元素的存儲位置都可以通過簡單計算得到,所以訪問元素的時間都相同。
而在數據的鏈接存儲中,由於每個元素的存儲位置保存在它的前驅或後繼結點中,所以只有當訪問到其前驅結點或後繼結點後才能夠按指針訪問到,訪問任一元素的時間與該元素結點在鏈式存儲結構中的位置有關。
㈤ 敘述線性表兩種存儲結構各自的主要特點
兩種存儲結構各自的主要特點
1、順序存儲結構:存儲單元地址連續,它以「物理位置相鄰」來表示線性表中數據元素間的邏輯關系,可隨機存取表中任一元素。
2、鏈式存儲結構:存儲單元地址為任意一組,它的存儲單元可以是連續的,也可以是不連續的。
在表示數據元素之間的邏輯關系時,除了存儲其本身的信息之外,還需存儲一個指示其直接後繼的信息(即直接後繼的存儲位置),這兩部分信息組成數據元素的存儲映像,稱為結點(node)。
(5)線性表的存儲結構圖解擴展閱讀:
線性表結構特點
1、均勻性
雖然不同數據表的數據元素可以是各種各樣的,但對於同一線性表的各數據元素必定具有相同的數據類型和長度。
2、有序性
各數據元素在線性表中的位置只取決於它們的序號,數據元素之前的相對位置是線性的,即存在唯一的「第一個「和「最後一個」的數據元素,除了第一個和最後一個外,其它元素前面均只有一個數據元素(直接前驅)和後面均只有一個數據元素(直接後繼)。
㈥ 線性表兩種 存儲結構各自的優缺點有哪些
線性表的鏈式存儲結構:
優點:
插入和刪除不需要移動插入時只需要對插入位置後的一個元素進行操作,不需要大量的移動元素。空間有效利用高。
缺點:
大量訪問操作時不如順序存儲結構,因為每次都需要從頭開始遍歷整個線性表直到找到相應的元素為止。
線性表的順序存儲結構:
優點:
可隨機存取表中任一元素。因為有下標可以操作可以快速的定位到指定位置的元素,但是不知道位置的話也需要順序遍歷。
缺點:
插入或刪除操作時,需大量移動元素。合適在很少進行插入和刪除運算的情況下。
(6)線性表的存儲結構圖解擴展閱讀:
線性表的特徵
集合中必存在唯一的一個「第一元素」。
集合中必存在唯一的一個 「最後元素」 。
除最後一個元素之外,均有唯一的後繼(後件)。
除第一個元素之外,均有唯一的前驅(前件)。
線性表的基本操作
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的首地址。
參考資料來源:網路-線性表