1. 敘述線性表兩種存儲結構各自的主要特點
兩種存儲結構各自的主要特點
1、順序存儲結構:存儲單元地址連續,它以「物理位置相鄰」來表示線性表中數據元素間的邏輯關系,可隨機存取表中任一元素。
2、鏈式存儲結構:存儲單元地址為任意一組,它的存儲單元可以是連續的,也可以是不連續的。
在表示數據元素之間的邏輯關系時,除了存儲其本身的信息之外,還需存儲一個指示其直接後繼的信息(即直接後繼的存儲位置),這兩部分信息組成數據元素的存儲映像,稱為結點(node)。
(1)簡述線性表的存儲結構及各自優點擴展閱讀:
線性表結構特點
1、均勻性
雖然不同數據表的數據元素可以是各種各樣的,但對於同一線性表的各數據元素必定具有相同的數據類型和長度。
2、有序性
各數據元素在線性表中的位置只取決於它們的序號,數據元素之前的相對位置是線性的,即存在唯一的「第一個「和「最後一個」的數據元素,除了第一個和最後一個外,其它元素前面均只有一個數據元素(直接前驅)和後面均只有一個數據元素(直接後繼)。
2. 線性的數據結構有哪幾種各有什麼特點
線性的數據結構有:線性表、棧、隊列、雙端隊列、數組和串
1、線性表
線性表是最基本、最簡單、也是最常用的一種數據結構。一個線性表是n個具有相同特性的數據元素的有限序列。
特點:線性表中數據元素之間的關系是一對一的關系;線性表的邏輯結構簡單,便於實現和操作。
2、棧
棧又名堆棧,它是一種運算受限的線性表。其限制是僅允許在表的一端進行插入和刪除運算。這一端被稱為棧頂,相對地,把另一端稱為棧底。棧是限定僅在表頭進行插入和刪除操作的線性表。
特點:棧是允許在同一端進行插入和刪除操作的特殊線性表,棧可以用來在函數調用的時候存儲斷點,做遞歸時要用到棧。
3、隊列
隊列是一種特殊的線性表,特殊之處在於它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作,和棧一樣,隊列是一種操作受限制的線性表。
特點:在隊列的形成過程中,可以利用線性鏈表的原理,來生成一個隊列;隊列和棧一樣只允許在斷點處插入和刪除元素。
4、雙端隊列
雙端隊列是指允許兩端都可以進行入隊和出隊操作的隊列,其元素的邏輯結構仍是線性結構。將隊列的兩端分別稱為前端和後端,兩端都可以入隊和出隊。
特點:對於雙端隊列,在序列的兩端插入元素的時間復雜度均為常數,在中間插入元素的時間復雜度與插入點到最近序列端點的距離成正比。
5、數組
數組是用於儲存多個相同類型數據的集合。若將有限個類型相同的變數的集合命名,那麼這個名稱為數組名。組成數組的各個變數稱為數組的分量,也稱為數組的元素,有時也稱為下標變數。
特點:數組中的各元素的存儲是有先後順序的,它們在內存中按照這個先後順序連續存放在一起;數組元素用整個數組的名字和它自己在數組中的順序位置來表示。
6、串
串是零個或多個字元組成的有限序列。一般記S=『a1a2....an 』其中,S是串名,單引號括起的字元序列是串值;ai(1〈=i〈=n)可以是字母,數字或其它字元。
特點:串中所包含的字元個數為該串的長度;長度為零的串稱為空串,它不包含任何字元。
3. 什麼是線性表線性表有哪兩種存儲結構它們是如何存儲數據元素的各有什麼優點
線性表:有n(n>0)的數據元素a1,a2,a3,.....,an組成的有限序列。
兩種存儲結構:
順序存儲結構:存取較快,插入刪除較麻煩。
鏈式存儲結構:存取較慢,插入刪除叫簡單。
存儲數據元素:
順序存儲結構:直接存取。優點空間連續,位置明確。
鏈式存儲結構:由於鏈表特徵,需要從表頭掃面。優點空間分散,位置不明確。
線性表中數據元素之間的關系是一對一的關系,即除了第一個和最後一個數據元素之外,其它數據元素都是首尾相接的,注意,這句話只適用大部分線性表,而不是全部。比如,循環鏈表邏輯層次上也是一種線性表。
(3)簡述線性表的存儲結構及各自優點擴展閱讀:
線性表中的個數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有且僅有一個直接前驅。
4. 線性表兩種 存儲結構各自的優缺點有哪些
線性表的鏈式存儲結構:
優點:
插入和刪除不需要移動插入時只需要對插入位置後的一個元素進行操作,不需要大量的移動元素。空間有效利用高。
缺點:
大量訪問操作時不如順序存儲結構,因為每次都需要從頭開始遍歷整個線性表直到找到相應的元素為止。
線性表的順序存儲結構:
優點:
可隨機存取表中任一元素。因為有下標可以操作可以快速的定位到指定位置的元素,但是不知道位置的話也需要順序遍歷。
缺點:
插入或刪除操作時,需大量移動元素。合適在很少進行插入和刪除運算的情況下。
(4)簡述線性表的存儲結構及各自優點擴展閱讀:
線性表的特徵
集合中必存在唯一的一個「第一元素」。
集合中必存在唯一的一個 「最後元素」 。
除最後一個元素之外,均有唯一的後繼(後件)。
除第一個元素之外,均有唯一的前驅(前件)。
線性表的基本操作
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的首地址。
參考資料來源:網路-線性表
5. 數據結構線性表兩種存儲結構的主要優缺點以及各自適用場合是什麼
鏈式:優點:插入和刪除不需要移動,空間有效利用缺點:大量訪問操作時不如順序存儲結構。順序:優點:可隨機存取表中任一元素。缺點:插入或刪除操作時,需大量移動元素。合適在很少進行插入和刪除運算的情況下。
6. 線性表的順序結構和鏈條結構各有什麼優缺點
①順序結構:
優點:易於查詢,索引快 list[n]這樣的操作,O(1)復雜度
缺點:擴展性弱,不易刪除、添加。
②鏈表結構:
優點:擴展性強,易於刪除、添加
缺點:不易於查詢,索引慢,list[n]這樣的操作,復雜度為O(n)
二者優缺點正好是互補關系
7. 簡答線性表可用順序表或者鏈表存儲,此兩種存儲表示各有哪些優缺點
定義
順序存儲結構就是用一組地址連續的存儲單元依次存儲該線性表中的各個元素。由於表中各個元素具有相同的屬性,所以佔用的存儲空間相同。
線性表按鏈式存儲時,每個數據元素
(結點)的存儲包括數據區和指針區兩個部分。數據區存放結點本身的數據,指針區存放其後繼元素的地址只要知道該線性表的起始地址表中的各個元素就可通過其間的鏈接關系逐步找到
優缺點
順序存儲需要開辟一個定長的空間,讀寫速度快,缺點不可擴充容量(如果要擴充需要開辟一個新的足夠大的空間把原來的數據重寫進去)
鏈式存儲無需擔心容量問題,讀寫速度相對慢些,由於要存儲下一個數據的地址所以需要的存儲空間比順序存儲大。
8. 線性表順序存儲結構和鏈式存儲結構的優缺點(JAVA)
順序存儲需要開辟一個定長的空間,讀寫速度快,缺點不可擴充容量(如果要擴充需要開辟一個新的足夠大的空間把原來的數據重寫進去)
鏈式存儲無需擔心容量問題,讀寫速度相對慢些,由於要存儲下一個數據的地址所以需要的存儲空間比順序存儲大。
我感覺java數據結構沒有c、c++來的重要。