realloc
指標名=(資料型別*)realloc(要改變記憶體大小的指標名,新的大小)
malloc
void *malloc(int size); malloc 向系統申請分配指定size個位元組的記憶體空間。
a.79
b. 551
c.1063
d.不確定
設二叉樹中度為0的葉子結點個數為n0,度為1結點個數為n1,度為2結點個數為n2,於是n0 + n1 + n2 = 1001根據二叉樹性質:n0 = n 2 + 1,代入得到,2n2 + 1+ n1 = 1001由於完全二叉樹的n1 只能是0或者1,為滿足2n2 + 1 + n1 = 1001,n1 =0,因此n2 = 500。
所以n0 = 501,即葉子個數是501個
答案: b
a.該樹一定是一棵完全二叉樹
b.樹中一定沒有度為1的結點
c.樹中兩個權值最小的結點一定是兄弟結點
d.樹中任一非葉結點的權值一定不小於下一任一結點的權值
答案 a
哈夫曼樹為帶權路徑長度最小的二叉樹,不一定是完全二叉樹。
哈夫曼樹中沒有度為1的結點,b正確;
構造哈夫曼樹時,最先選取兩個權值最小的結點作為左右子樹構造一棵新的二叉樹,c正確;
哈夫曼樹中任一非葉結點p的權值為其左右子樹根結點權值之和,其權值不小於其左右子樹根結點的權值,在與結點p的左右子樹根結點處於同一層的結點中,若存在權值大於結點.p權值的結點q,那麼結點q的兄弟結點中權值較小的乙個應該與結點p作為左右子樹構造新的二叉樹。
綜上可知,哈夫曼樹中任一非葉結點的權值一定不小於下一層任一結點的權值。
答案:2
解析:等長方式編碼所佔位數:2 * (4 + 2 + 5 + 1) = 24;哈夫曼編碼所佔位數:1 * 3 + 2 * 3 + 4 * 2 + 5 * 1 = 22;
就是9個
這個可以構造性的方法來說明
構造:這樣的圖至少有9個頂點
證明:假設有8個頂點,則8個頂點的無向圖最多有28條邊且該圖為連通圖
連通無向圖構成條件:邊=頂點數*(頂點數-1)/2
頂點數》=1,所以該函式存在單調遞增的單值反函式
所以邊與頂點為增函式關係
所以28個條邊的連通無向圖頂點數最少為8個
所以28條邊的非連通無向圖為9個(加入乙個孤立點)
要保證元向圖g在任何情況下都是連通的,即任意變**g中的邊,g始終保持連通,首先需要g的任意6個結點構成完全連通子圖g1,需15條邊,然後再添一條邊將第7結點與g1連線起來,共需16條邊
16條邊得出結點總數為32
去除3個4度,4個3度,還剩8
因為題上說其餘結點度數都小於3,所以度數最大為2
所以最少還有4個結點,每個結點度數都為2
4+3+4=11
a.所有結點的平均查詢效率是? (公升? 克? )
b.最小值一定在葉結點上
c.最大值一定在葉結點上
d.中位值結點在根結點或根的左子樹上
二叉排序樹的定義是:(1)若左子樹不空,則左子樹上所有結點的值均小於它的根結點的值;
(2)若右子樹不空,則右子樹上所有結點的值均大於它的根結點的值;
(3)左、右子樹也分別為二叉排序樹;
(4)沒有鍵值相等的節點。
從上圖分析可知
(1)最大節點必定在右子樹中
(2)最大節點必定在右子樹中的某個右孩子上
然而這某個右孩子並不一定是葉子節點。比如2
1 4
3
資料結構選擇題
1.問題 採用鄰接表儲存的圖的廣度優先遍歷演算法類似於二叉樹的 a.先序遍歷 b.中序遍歷 c.後序遍歷 d.按層遍歷 答案 d 2.問題 如果使用比較高效的演算法判斷單鏈表有沒有環的演算法中,至少需要幾個指標?答案 2個 分析 判斷鍊錶有沒有環,可以用快慢指標來實現,兩指標的移動速度不一樣。如果相...
複習 資料結構選擇題
1.將n條長度均為m的有序鍊錶進行合併,合併以後的鍊錶也保持有序,時間複雜度為 2.大小為max的迴圈佇列中,f為當前對頭元素位置,r為當前隊尾元素位置 最後乙個元素的位置 則任意時刻,佇列中的元素個數為 3.n!後面有多少個0,6!1 2 3 4 5 6 720.720後面有1個0,n 10000...
牛客網選擇題 資料結構
1 字串www.qq.com所有非空子串 兩個子串如果內容相同則只算乙個 個數是 1024 1018 5550 正確答案 d 解析 初始想法是組合問題,想錯了。字串概念理解錯誤。比如,abc的子串 a b c ab bc abc和乙個空子串 共 3 2 1 1 個 兩個字串 ab,bc,沒有ac.串...