【答案】棧和佇列都是操作受限的線性表,棧只能在一端(棧頂)進行進出的線性表,而佇列是只能在一端(隊尾)插入,在另一端(隊頭)進行刪除的線性表,樹的先中後序遍歷可以通過棧來實現,從而避免遞迴操作,樹的層次遍歷,可以通過迴圈佇列實現。棧佇列
線性表受限
受限線性表進出
一端(棧頂)
一端插入另一端刪除
實現樹的先中後續遍歷(避免遞迴操作)
樹的層次遍歷(迴圈佇列)
拓展棧和堆的區別
堆區:由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能有os**(引用型別值)。
棧(資料結構):一種先進後出的資料結構。
堆(資料結構):堆可以被看成是一棵樹,如:堆排序。棧堆
資料結構
一種先進後出的資料結構
堆可以看成是一棵樹
區編輯器自動分配釋放
手動釋放ab
cdef
畫出該陣列所對應的二叉樹,然後將該二叉樹轉換成樹或者森林
【答案】
【答案】 假設兩個棧 a 和b,且都為空。
可以認為棧 a 為提供入佇列的功能,棧 b 提供出佇列的功能。
入佇列: 入棧 a
出佇列:
1 如果棧b 不為空,直接彈出棧 b 的資料。
2 如果棧 b 為空,則依次彈出棧 a 的資料,放入棧 b 中,再彈出棧 b 的資料。
【答案】裝填因子為a=0.75,表中元素個數為n=11,表長為n/a向上取整等於15
p為不大於表長的最大素數,p=13,因此h(key)=key mod 13
asl1=(1+7+1+2+1+2+5+1+2+2+1)/11=26/11
裝填因子:a=n/m 其中n 為關鍵字個數(11),m為表長(14.66向上取整為15)。
對p的選擇很重要,一般取素數或m
二叉搜尋樹(二叉排序樹)
(1)若左子樹不為空,則左子樹上所有節點的值均小於或等於它的根節點的值。
(2)若右子樹不為空,則右子樹上所有節點的值均大於或等於它的根節點的值。
(3)左、右子樹也分別為二叉搜尋樹。
深度優先遍歷簡稱dfs(depth first search)
廣度優先遍歷簡稱bfs(breadth first search)
【答案】a->f->h->g->e->c->d->b
【答案】5,16,2,12,28,60,32,72
這種題怎麼做呢~
(1)首先從這組資料中取中間值樞紐元素(先移出去),比如2,5,12,16,28,32,60,72(樞紐元素是可以隨便選的,不是指定的)
(2)i從最左邊開始,j從最右邊開始,當i所對應的值》28同時j所對應的值<28,則i和j對應的值互換
序列16
3212602
572i和ji
j互換後
序列16512
6023272
i和ji
j再移動i和j最後生成
序列16512
2603272
i和jj
i最終在i和j當中插入28
序列16512
2286032
72i和jji
【答案】任取乙個結點為起始結點,每有乙個頂點加入圖中,就至少會生成一條邊,因為圖是連通的,所以n個頂點需要至少需要n-1條邊的連線。同時當圖中只有n-1條邊時,每個結點都只可能與乙個結點相連,一定不會產生環,因此n個結點n-1條邊的無向圖一定是一顆樹。
資料結構簡答題期末複習
1 資料結構定義 資料結構是指相互之間存在著一種或多種關係的資料 元素的集合和該集合中資料元素 之間的關係組成。2 其邏輯結構的四種關係並畫出它們的關係圖 集合結構 2.線性結構 3.樹形結構 4.圖形結構 3 資料結構的特性 陣列 優點是插入快,如果知道下標,可以非常快地訪問。缺點是查詢慢,刪除慢...
c 簡答題題庫 C 簡答題集錦
c 簡答題集錦 問題1 什麼是演算法?演算法應包括哪兩部分?答 所謂演算法,是指為解決乙個問題而採取的方法和步驟,或者說是解題步驟的精確描述。演算法應包括設計演算法和執行演算法兩部分。問題2 結構化程式設計的特徵是什麼?答 結構化程式設計方法從程式設計思想上要求自頂向下,逐步求精 從程式的具體結構上...
還是幾道簡答題
今天和昨天一樣,又找了幾道簡答題,鞏固一下前一段時間學習的成果,也對一些名詞有了更深入的了解 1.makefile的作用 makefile檔案儲存了編譯器和聯結器的引數選項,還表述了所有原始檔之間的關係。建立程式 make程式 首先讀取makefile檔案,然後再啟用編譯器,彙編器,資源編譯器 和聯...