連續存儲區域
1. 有六個元素以6,5,4,3,2,1的順序進棧,問哪個不是合法的出棧序列
選5.
是以從大到小的隨機順序入棧,雖然順序不可控,但是從大到小所以5肯定在6後面入棧,遵循後進先出原則,所以5不可能在6之後出棧,所以一眼看出c是不合法的。
沒有規定要一次性進完所有的元素:對於A:先進入6-5,再出5,再進4,再出4,再進3 ,再出3,再出6;再進入2,1,再出1,2;C;先進入6-5-4-3,再出3沒錯,再出4也沒錯,再出6就不對,要先出5才行的。
(1)連續存儲區域擴展閱讀:
棧的順序存儲結構是利用內存中的一片起始位置確定的連續存儲區域來存放棧中的所有元素,另外為了指示棧頂的准確位置,還需要引入一個棧頂指示變數top,採用順序存儲結構的棧稱為順序棧(sequence stack)。設數組data[MAXSIZE]為棧的存儲空間,其中MAX-SIZE是一個預先設定的常數,為允許進棧結點的最大可能數目,即棧的容量。
2. 什麼是變數 什麼是對象
變數是用來存儲數據的,就像一個箱子,把東西存放進去,然後需要的時候去取出來,對象就是是一個類功能模塊的集合,裡面有方法和屬性,每一個方法能實現一個不同的功能,屬性是決定對象執行結果的因素,屬性只能「寫」和「讀」
3. 分段存儲管理每一段必須是連續的存儲區嗎
如果說推動存儲管理方式從固定分區到動態分區分配,進而又發展到分頁存儲管理方式的主要動力,是提高內存利用率,那麼,引入分段存儲管理方式的目的,則主要是為了滿足用戶(程序員)在編程和使用上多方面的要求,其中有些要求是其它幾種存儲管理方式所難以滿足的。因此,這種存儲管理方式已成為當今所有存儲管理方式的基礎。
4. 匯編語言中SP寄存器是什麼
匯編語言中SP寄存器是指的是堆棧指針寄存器,在堆棧操作中使用,PUSH和POP指令是從SP寄存器得到現行堆棧段的段內偏移量,所以稱SP寄存器為堆棧指針,SP始終指向棧頂。
堆棧是計算機中廣泛應用的技術,基於堆棧具有的數據進出LIFO特性,常應用於保存中斷斷點、保存子程序調用返回點、保存CPU現場數據等,也用於程序間傳遞參數。
(4)連續存儲區域擴展閱讀
為了更准確地描述堆棧,根據「壓棧」操作時堆棧指針的增減方向,將堆棧區分為『遞增棧』(SP 向大數值方向變化)和『遞減堆棧』(SP 向小數值方向變化);
又根據SP 指針指向的存儲單元是否含有堆棧數據,又將堆棧區分為『滿堆棧』(SP 指向單元含有堆棧有效數據)和『空堆棧』(SP 指向單元不含有堆棧有效數據)。
這樣兩兩組合共有四種堆棧方式——滿遞增、空遞增、滿遞減和空遞減。
ARM處理器的堆棧操作具有非常大的靈活性,對這四種類型的堆棧都支持。
參考資料來源:網路-堆棧指針寄存器
5. 棧和隊列不是邏輯結構嗎,它們的順序和鏈式才是存儲結構,一題中說棧也是存儲結構,請解釋一下
棧作為一種數據結構,是一種只能在一端進行插入和刪除操作的特殊線性表。它按照先進後出的原則存儲數據,先進入的數據被壓入棧底,最後的數據在棧頂,需要讀數據的時候從棧頂開始彈出數據。棧具有記憶作用,對棧的插入與刪除操作中,不需要改變棧底指針。
(5)連續存儲區域擴展閱讀:
棧的順序存儲結構利用內存中的一片起始位置確定的連續存儲區域來存放棧中的所有元素,為了指示棧頂的准確位置,還需要引入一個棧頂指示變數top。設數組data[MAXSIZE]為棧的存儲空間,其中MAX-SIZE是一個預先設定的常數,為允許進棧結點的最大可能數目。
初始時棧空,top等於0。當top不等於0時,data[0]為棧底元素,即為當前停留在棧中時間最長的元素。而data[top-1]為最後入棧的元素。當top==MAXSIZE時,表示棧滿,如果此時再有結點進棧,將發生「上溢」的錯誤,而當top==0時再執行出棧操作,將發生「下溢」的錯誤。
6. 連續存儲數據時,存儲單元的地址()A.一定連續 B一定不連續 C不一定連續 D部分連續
A。
鏈式存儲,存儲空間可以不連續,但存儲地址必連續。
鏈式存儲設計時,各個不同結點的存儲空間可以不連續,但是結點內的存儲單元地址則必須連續。
typedef struct LNode {
int value; // value中存放結點值域,默認是int型
struct Lnode *next;//指向後繼結點的指針
}LNode; // 定義單鏈表結點類型
上述定義了一個結構體,包括兩部分,一是值域,二是指針域;每當定義一個結點都會產生這兩個區域。
這個value與next域必須是挨著的,稱這個結點為內部。
(6)連續存儲區域擴展閱讀:
由於不必須按順序存儲,鏈表在插入的時候可以達到O(1)的復雜度,比另一種線性表順序錶快得多,但是查找一個節點或者訪問特定編號的節點則需要O(n)的時間,而順序表相應的時間復雜度分別是O(logn)和O(1)。
使用鏈表結構可以克服數組鏈表需要預先知道數據大小的缺點,鏈表結構可以充分利用計算機內存空間,實現靈活的內存動態管理。但是鏈表失去了數組隨機讀取的優點,同時鏈表由於增加了結點的指針域,空間開銷比較大。
7. 什麼是系統中存放數據的基本方式
1、順序存儲方式:順序存儲方式就是在一塊連續的存儲區域一個接著一個的存放數據。順序存儲方式把邏輯上相鄰的節點存儲在物理位置撒花姑娘相鄰的存儲單元里,節點間的邏輯關系由存儲單元的鄰接關系來體現。順序存儲方式也稱為順序存儲結構,一般採用數組或結構數組來描述。
2、鏈接存儲方式:鏈接存儲方式比較靈活,不要求邏輯上相鄰的節點在物理位置上相鄰,節點間的邏輯關系由附加的引用欄位來表示。一個節點的引用欄位往往指向下一個節點的存放位置。鏈接存儲方式也成為鏈式存儲結構。
3、索引存儲方式:索引存儲方式是採用附加的索引表的方式來存儲節點信息的一種存儲方式。索引表由若干索引項組成。索引存儲方式中索引項的一般形式為(關鍵字、地址)。其中,關鍵字是能夠唯一標識一個節點的數據項。索引存儲方式還可以細分為如下兩類。
稠密索引:這種方式中每個節點在索引表中都有一個索引項,其中索引項的地址知識節點所在的存儲位置。
稀疏索引:這種方式中一組節點在索引表中只對應一個索引項。其中,索引項的地址指示一組節點的起始存儲位置。
4、散列存儲方式:散列存儲方式是根據節點的關鍵字直接計算出該節點的存儲地址的一種存儲方式。
在實際應用中,往往需要根據具體的數據結構來決定採用哪種存儲方式。同一邏輯結構採用不同的存儲方法,可以得到不同的存儲結構。而且者4中基本存儲方法,既可以單獨使用,也可以組合起來對數據結構進行存儲描述。
8. 常用的存儲表示方法有哪幾種
摘要 數據結構的存儲方式有順序存儲方法、鏈接存儲方法、索引存儲方法和散列存儲方法這四種。