數據結構+算法——錯題總結

文章目錄

葉子節點數=度爲2的節點數+1
總葉子節點數=葉子節點數+度爲1的節點數+度爲2的節點數

排序

栗子:

一組記錄的排序碼爲(46,79,56,38,40,84),一趟排序的結果爲(40,38,46,56,79,84),則採用的是()排序算法。

  • A選項起泡算法:相鄰元素兩兩比較,一個元素大於右側相鄰元素交換位置,否則位置不變。 一趟排序爲:46,56,38,40,79,84

  • B選項直接插入:每一步將一個待排序的記錄,插入到前面已經排好序的有序序列中去,直到插完所有元素爲止。
    一趟排序爲:38,40,46,79,56,84

找到一個最小的放最前面,其他不變

  • C選項快速:挑選一個基準元素,大於基準元素的放在其右邊,小於基準元素的放在其左邊,從而拆分爲兩部分,以此類推直到不可拆分爲止。
    以源數據第一個元素46爲基準,採用雙邊循環法設置left和right兩個指針指向數組最左和最右兩端,從右指針開始,如果大於或等於基準元素則指針向左移動,如果小於基準元素則停止。轉向left指針向右移動如果小於或等於基準元素則繼續向右移動,如果大於基準元素則停止。交換兩指針元素後,右指針繼續上述操作比較,直到最後把基準元素和兩指針重複元素交換位置。第一趟排序結束得出如下排序,所以C正確。
    一趟排序爲:40,38,46,56,79,84
  • D選項2-路歸併:將一個數組分成兩個數組,分別對兩個數組進行排序,循環第一步,直到劃分出來的「小數組」只包含一個元素,只有一個元素的數組默認爲已經排好序
    一趟排序爲:46,56,79合併;38,40,84合併
    栗子:
    在這裏插入圖片描述 p^.llink 表示 p 的前驅結點,p^.rlink表示 p 的後繼結點。刪除 p 所指結點時須將 p 的前驅結點的rlink指向 p 的後繼結點,將 p 的後繼結點的 llink 指向 p 的前驅結點。