在順序存儲結構中
㈠ 為什麼在順序存儲結構下,棧的插入和刪除運算都不需要移動表中其他數據元素,如果在鏈式存儲結構下會怎樣
棧也被叫做"先進後出表",正是由於這種性質,讓它可以不需要移動元素實現插入和刪除.
棧的插入,其實就是壓棧,它是被嚴格限制在棧頂進行的.由於棧頂也是表中最後一個元素,所以壓棧也就相當於是在順序表的最後追加一個元素,這顯然不影響前面的元素,也就無需移動其他元素了.
刪除也是同樣的道理,彈棧(刪除操作)也是被嚴格限制在棧頂進行,這時候刪除一個元素只需要在順序表中去除最後一個元素,自然也不影響之前的元素.
鏈式結構對於棧來說,同樣不需要作任何其他元素的移動.事實上,鏈式結構的刪除和插入操作本身就不需要移動其他元素,無論是對於棧來說還是對於一般的鏈表.
㈡ 線性表的順序存儲結構是隨機存取的
可以參考下面幾種解釋
1、解釋一:
順序存儲結構的地址在內存中是連續的所以可以通過計算地址實現隨機存取,與此相對 鏈式存儲結構的存儲地址不一定連續,只能通過第個結點的指針順序存取
2、解釋二:
線性表的順序存儲結構可以通過線性表的首址加偏移的方法計算出來第i個數據的位置a+i*sizeof(單個結構)而線性表的鏈式存儲結構要訪問第i個數據,就必須先訪問前面的i-1個數據
(2)在順序存儲結構中擴展閱讀:
線性表主要由順序表示或鏈式表示,在實際應用中,常以棧、隊列、字元串等特殊形式使用,順序表示指的是用一組地址連續的存儲單元依次存儲線性表的數據元素,稱為線性表的順序存儲結構或順序映像,順序存儲結構是隨機存取的。
鏈式表示指的是用一組任意的存儲單元存儲線性表中的數據元素,稱為線性表的鏈式存儲結構。它的存儲單元可以是連續的,也可以是不連續的。
㈢ 順序存儲結構和鏈式存儲結構的優缺點
存儲空間
順序存儲結構是要求事先分配存儲空間的,即靜態分配,所以難以估計存儲空間的大小。估計過大會造成浪費,估計太小又容易造成空間溢出。
而鏈式存儲結構的存儲空間是動態分配的,只要計算機內存空間還有空閑,就不會發生溢出。
另外還可以從存儲密度的角度考慮,存儲密度的定義公式為:一般來說,存儲密度越大,存儲空間的利用率就越高。
顯然,順序存儲結構的存儲密度為1,而鏈式存儲結構的存儲密度小於1。
運算時間
順序表是一種順序存儲結構,對表中任一結點都可以在O(1)時間復雜度下直接訪問;而訪問鏈表中的某個結點時,必須從頭指針開始沿著鏈表順序查找,時間復雜度為O(n)。
鏈表順序查找,時間復雜度為O(n)。
因此,如果對線性表的操作以查找為主,則採用順序存儲結構較好;若以插入、刪除為主,則採用鏈式存儲結構為宜。
㈣ 為什麼說在順序存儲結構下,棧的插入和刪除運算不需移動表中其他數據元素
棧的插入(入棧)和刪除(出棧)運算,都是在棧的同一端進行。所以在順序存儲結構下,棧的入棧與出棧只需移動棧頂指針即可。
如用數組表示棧時,設a[]表示棧,top表示棧頂,x表示欲入(出)棧的元素,則入棧只需:a[top]=x;;top++,出棧只需:top--;x=a[top]。
如用鏈表表示棧,對於不使用頭結點的情形,入棧和出棧時也不需要移動表中其他數據元素;對於使用頭結點的情形,入棧和出棧時需要修改頭結點的指針。
㈤ 在順序存儲結構的線性表中刪除指定元素x的演算法
先比較 找出等於X的節點序號 在刪除 並將該節點以後的節點序號依次減一就OK了
㈥ 在順序存儲結構與鏈式存儲結構中,獲取第i個元素的操作有何不同哪種更快
順序存儲是一種隨機存取的結構,而鏈表則是一種順序存取結構,因此它們對各種操作有完全不同的演算法和時間復雜度。
一:順序表的特點是邏輯上相鄰的數據元素,物理存儲位置也相鄰,並且,順序表的存儲空間需要預先分配。
它的優點是:
(1)方法簡單,各種高級語言中都有數組,容易實現。
(2)不用為表示節點間的邏輯關系而增加額外的存儲開銷。
(3)順序表具有按元素序號隨機訪問的特點。
缺點:
(1)在順序表中做插入、刪除操作時,平均移動表中的一半元素,因此對n較大的順序表效率低。
(2)需要預先分配足夠大的存儲空間,估計過大,可能會導致順序表後部大量閑置;預先分配過小,又會造成溢出。
二、在鏈表中邏輯上相鄰的數據元素,物理存儲位置不一定相鄰,它使用指針(引用)實現元素之間的邏輯關系。並且,鏈表的存儲空間是動態分配的。
鏈表的最大特點是:
插入、刪除運算方便。
缺點:
(1)要佔用額外的存儲空間存儲元素之間的關系,存儲密度降低。存儲密度是指一個節點中數據元素所佔的存儲單元和整個節點所佔的存儲單元之比。
(2)鏈表不是一種隨機存儲結構,不能隨機存取元素。
㈦ 判斷題:在順序存儲結構中,有時也存儲數據結構中元素之間的關系。是錯的為什麼
順序存儲結構中,數據元素都是按順序依次存放的,並沒有存儲元素之間的關系。像鏈表,除了存儲數據外,還存儲了下一個數據的指針,這才叫存儲了數據元素之間的關系
㈧ 在線性表的順序存儲結構中,邏輯上相鄰的兩個元素在物理位置上並不一定緊鄰,是對是錯
是錯的,在線性表的順序存儲結構中,邏輯上相鄰的兩個元素在存儲位置上一定是相鄰的,所以說題目中的說法是錯誤的。
順序存儲結構是存儲結構類型中的一種,該結構是把邏輯上相鄰的結點存儲在物理位置上相鄰的存儲單元中,結點之間的邏輯關系由存儲單元的鄰接關系來體現。
在計算機中用一組地址連續的存儲單元依次存儲線性表的各個數據元素,稱作線性表的順序存儲結構。
(8)在順序存儲結構中擴展閱讀:
順序存儲結構的優缺點:
優點:隨機存取表中元素、儲存密度大。
缺點:插入和刪除操作需要移動元素。
線性表的特徵:
1、集合中必存在唯一的一個「第一元素」。
2、集合中必存在唯一的一個「最後元素」。
3、除最後一個元素之外,均有唯一的後繼(後件)。
4、除第一個元素之外,均有唯一的前驅(前件)。
線性表的結構特點:
1、均勻性,雖然不同數據表的數據元素可以是各種各樣的,但對於同一線性表的各數據元素必定具有相同的數據類型和長度。
2、有序性,各數據元素在線性表中的位置只取決於它們的序號,數據元素之前的相對位置是線性的,即存在唯一的「第一個」和「最後一個」的數據元素,除了第一個和最後一個外,其它元素前面均只有一個數據元素和後面均只有一個數據元素。
參考資料來源:網路-順序存儲結構
參考資料來源:網路-線性表
㈨ 在線性表的順序存儲結構中元素間的邏輯關系是通過什麼決定的鏈式存儲結構呢
在線性表的順序存儲結構中,元素之間的邏輯關系是通過(
元素的存儲地址
)決定的;在線性表的鏈接存儲中,元素之間的邏輯關系是通過(
結點中的指針
)決定的。
㈩ 線性表的順序存儲結構和線性表的鏈式存儲結構分別是
您好,
這道題的答案是B
首先解題需要了解線性表的定義,順序存儲結構和鏈式存儲結構的區別,他們分別如下:
資料擴展
定義:線性表(Linear List)是由n(n≥0)個數據元素(結點)a[0],a[1],a[2]…,a[n-1]組成的有限序列。
對於線性表而言,有如下幾點需要明確:
①數據元素的個數n定義為表的長度 = "list".length() ("list".length() = 0(表裡沒有一個元素)時稱為空表)
②將非空的線性表(n>=0)記作:(a[0],a[1],a[2],…,a[n-1])
③數據元素a[i](0≤i≤n-1)只是個抽象符號,其具體含義在不同情況下可以不同,一個數據元素可以由若干個數據項組成。數據元素稱為記錄,含有大量記錄的線性表又稱為文件。這種結構具有下列特點:存在一個唯一的沒有前驅的(頭)數據元素;存在一個唯一的沒有後繼的(尾)數據元素;此外,每一個數據元素均有一個直接前驅和一個直接後繼數據元素。
綜上所述,這道題目選擇B項。