2-01基本顺序表与元素外置顺序表recv
順序表
在程序中,經常需要將一組(通常是同為某個類型的)數據元素作為整體管理和使用,需要創建這種元素組,用變量記錄它們,傳進傳出函數等,一組數據中包含的元素個數可能發生變化(可以增加或刪除元素)。
對于這種需求,最簡單的解決方案遍是將這樣一組元素看成是一個序列,用元素在序列里的位置和順序,表示實際應用中的某種有意義的信息,或者表示數據之間的某種關系。
這樣的一組序列元素的組織形式,我們可以將其抽象為線性表。一個線性表是某類元素的一個集合,還記錄著元素之間的一種順序關系,線性表是最基本的數據結構之一,在實際程序中應用非常廣泛,它還經常被用作更復雜的數據結構的實現基礎。
根據線性表的實際存儲方式,分為兩種實現模型:
- 順序表,將元素順序地存放在一塊連續的存儲空間里,元素間的順序關系由它們的存儲順序自然表示。
- 鏈表,將元素存放在通過鏈接構造起來的一系列存儲塊中。
?
順序表的基本形式
圖a表示的是順序表的基本形式,數據元素本身連續存儲,每個元素所占的存儲單元大小固定相同,元素的下標是其邏輯地址,而元素存儲的物理地址(實際內存地址)可以通過存儲區的起始地址Loc(e0)加上邏輯地址(第i個元素)與存儲單元大小(c)的乘積計算而得,即:
Loc(ei)=Loc(e0) + c*i
故,訪問指定元素時無需從頭遍歷,通過計算便可獲得對應地址,其時間復雜度為O(1)
如果元素的大小不統一,則須采用圖b的元素外置形式,將實際數據元素另行存儲,而順序表中各單元位置保存對應元素的地址信息(即鏈接)。由于每個鏈接所需的存儲量相同,通過上述公式,可以計算出元素鏈接的存儲位置,而后順著鏈接找到實際存儲的數據元素。注意,圖b中的c不再是數據元素的大小,而是存儲一個鏈接地址所需的存儲量,這個量通常很小。
來源:https://www.cnblogs.com/echo-kid-coding/p/11148502.html
總結
以上是生活随笔為你收集整理的2-01基本顺序表与元素外置顺序表recv的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis淘汰删除策略
- 下一篇: 光银现金a赎回钱没了