日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构1800题-错题集-第六章

發布時間:2024/8/1 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构1800题-错题集-第六章 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

接著搞數據結構錯題集(⊙o⊙)…

序號標題為解答,引用為題目和答案

  • 總結點數=1 * 4 + 2 * 2 + 3 * 1 + 4 * 1 + 1(根節點) = 16
    葉子結點數=16-4-2-1-1(總節點數-度不為0的個數)=8
  • 設樹 T 的度為 4,其中度為 1,2,3 和 4 的結點個數分別為 4,2,1,1 則 T 中的葉子
    數為 ( 8 )

  • 如圖是參照牛客網牛友給出 森林到二叉樹的轉化
    第一個顆樹的根節點作為二叉樹的根節點、接著下一顆樹的根節點作為,第一棵樹的右子樹

    因為除去右子樹過后 剩下的就是 左子樹和根節點 (即為第一個子樹)
  • 設森林 F 對應的二叉樹為 B,它有 m 個結點, B 的根為 p,p 的右子樹結點個數為 n,森林 F
    中第一棵樹的結點個數是( A )
    A.m-n B.m-n-1 C.n+1 D.條件不足,無法確定

  • n0 = n2 + 1
    推導公式如下:
    n 為 結點的總數
    n0 為 度為0的結點總數
    依次類推
    ①從邊的角度考慮:n - 1 (總共有這么多邊) = 2 * n2 + 1 * n1 (想想 每個結點指向的邊 就插在 一個結點頭上)
    ②從結點的角度考慮:n = n0 + n1 + n2
    結合①和②就可以退出公式來了
  • 具有 10 個葉結點的二叉樹中有( B )個度為 2 的結點

  • 假設該完全二叉樹的深度為 k,則根據完全二叉樹的定義和性質 2有:
    2 ^(k-1)-1< n ≤2^k-1
    所以有:k-1≤ log2^(n+1)<k
  • 二叉鏈表:左孩子右兄弟
  • 利用二叉鏈表存儲樹,則根結點的右指針是( C )。【青島大學 2001 五、 5 (2 分)】
    A.指向最左孩子 B.指向最右孩子 C.空 D.非空

  • 題目中說從1開始編號,也就是從小到大進行,后半段的描述得從小到大的順序為:左、右、根,所以為后序遍歷。
  • 對二叉樹的結點從 1 開始進行連續編號, 要求每個結點的編號大于其左、 右孩子的編號,同一結點的左右孩子中,其左孩子的編號小于其右孩子的編號,可采用 ( C )次序的遍歷實現編號。【北京理工大學 2000 一、 4 (2 分)】
    A.先序 B. 中序 C. 后序 D. 從根開始按層次遍歷

  • 樹的雙親表示法、孩子表示法和孩子兄弟表示法
    雙親表示法 取一塊連續的內存空間,在存儲每個結點的同時,各自都附加一個記錄其父結點位置的變量。
    孩子表示法 將樹中的每個結點的孩子結點排列成一個線性表,用鏈表存儲起來。對于含有 n 個結點的樹來說,就會有 n 個單鏈表,將 n 個單鏈表的頭指針存儲在一個線性表中,這樣的表示方法就是孩子表示法。
    兄弟孩子表示法 使用鏈式存儲結構存儲普通樹。鏈表中每個結點由 3 部分組成,其中孩子指針域,表示指向當前結點的第一個孩子結點,兄弟結點表示指向當前結點的下一個兄弟結點。
  • 注意題干說的是葉子節點的先后順序都是先左后右
  • 在二叉樹結點的先序序列,中序序列和后序序列中,所有葉子結點的先后順序( B )
    A.都不相同 B.完全相同 C.先序和中序相同,而與后序不同
    D.中序和后序相同,而與先序不同

  • 要么是 只有左子樹 要么只有 右子樹
  • 某二叉樹的前序序列和后序序列正好相反,則該二叉樹一定是(高度等于其結點數)的二叉樹

  • 線索二叉樹中每個節點有兩個指針域,用于存放該節點的左右孩子或者前驅和后繼節點,若二叉樹有n個節點,則除了根節點外其它的n-1個節點都是某個節點的孩子,所以這n-1個節點占掉了n-1個指針域。按照題意,剩下的2n-(n-1)=n+1個指針域(包括空指針)就是線索數。
  • n個結點的線索二叉樹上含有的線索數為( n + 1)

  • 先序線索樹和后序線索樹是不完善的,先序線索樹查找節點前驅需要用棧,后序線索樹查找節點后驅需要用棧,而遍歷過程一般是從第一個節點開始逐漸查個后驅的過程
  • 注意審題,前提條件是要完全二叉樹,才可以確定
  • 當一棵有 n 個結點的二叉樹按層次從上到下,同層次從左到右將數據存放在一維數組
    A[l…n] 中時,數組中第 i 個結點的左孩子為( D )【南京理工大學 1999 一、 18(2 分)】
    A.A2i B. A[2i+1](2i+1=< n) C.A[i/2] D.無法確定

  • 把滿足以下兩個條件的樹型結構叫做二叉樹。
    u1.每個結點的度都不大于2。
    u2.每個結點的孩子結點次序不能任意顛倒。
  • 應該使用隊列
  • 對一棵二叉樹進行層次遍歷時,應借助于一個棧

  • 二叉樹的兩種存儲方式:
    ①一維數組:即用一位數組存儲二叉樹中的結點。采用層次遍歷,從上至下從左到右依次存儲,根節點存儲在下標為1的位置,對于任意位置i的結點,其左子樹位于2i,右子樹位于2i+1
    ②鏈式存儲:用鏈表表示二叉樹。每個結點存儲自身的數據以及兩個分別指向左孩子和右孩子結點的指針

  • 中序遍歷一棵二叉排序樹的結點就可得到排好序的結點序列

  • 二叉排序樹的定義:二叉排序樹或者是一棵空樹,或者是一棵具有如下性質的二叉樹:
    ⑴ 若它的左子樹非空,則左子樹上所有結點的值均小于根結點的值;
    ⑵ 若它的右子樹非空,則右子樹上所有結點的值均大于根結點的值;
    ⑶ 左、右子樹本身又各是一棵二叉排序樹。

  • 順序存儲一般只適用于完全二叉樹,就是用一維數組存儲二叉樹中的結點

  • 講樹轉為二叉樹
    參考牛客網 網友提供圖解

  • 線索化的規則是:左線索指針指向當前結點在中序遍歷序列中的前驅結點,右線索指針指向后繼結點。因此我們需要一個指針p指向當前正在訪問的結點,pre指向p的前驅結點,p的左線索指針如果存在的話直接指向pre(也就是前驅結點),pre的右線索如果存在則指向p(也就是直接后繼)。

  • 非空二叉樹中序遍歷(無頭結點的情況)線索化后,第一個結點無前驅,最后一個結點無后繼

  • 樹的帶權路徑長度(Weighted Path Length of Tree):定義為樹中所有葉結點的帶權路徑長度之和。
    結點的帶權路徑長度:結點到樹根之間的路徑長度與該結點上權的乘積。

  • 樹在計算機內的表示方式有:雙親表示法孩子鏈表法孩子兄弟表示法

  • 二叉樹中某一結點左子樹的深度減去右子樹的深度稱該為該結點的平衡因子

  • 一顆右n個結點的滿二叉樹有0個度為1的結點、有**( n - 1 )/ 2 個分支和(n + 1)/ 2**個葉子,該二叉樹的深度為 log2^n(取下界) + 1

  • 哈夫曼樹構造方法:
    ①首先從備選數中選取結點中最小的兩個數,并計算兩個數之和
    ②生成的新結點放入被選數中,繼續重復①的步驟,直到數都選完

  • 有一份電文中共使用 6 個字符 :a,b,c,d,e,f,它們的出現頻率依次為 2,3,4,7,8,9,試構造一
    棵哈夫曼樹, 則其加權路徑長度 WPL 為80,字符 c 的編碼是 001(不唯一)

    總結

    以上是生活随笔為你收集整理的数据结构1800题-错题集-第六章的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。