1. 程式人生 > 其它 >大廠面試經典問題:什麼是繼承 ?JavaScrpt中如何通過原型鏈實現繼承 ?

大廠面試經典問題:什麼是繼承 ?JavaScrpt中如何通過原型鏈實現繼承 ?

一、割點和割邊

  • 割點:在無向連通圖中,刪除一個頂點以及和它相鄰的所有邊,圖中的連通分量個數增加,則該頂點稱為割點

  • 割邊(橋):在無向連通圖中,刪除一條邊,圖中的連通分量個數增加,則該條邊稱為割邊或者橋

舉個栗子:

割點:

割邊:

二、邊連通分量和點連通分量

  • 邊雙連通圖:如果在無向圖中不存在割邊,則稱它為邊雙連通圖。在邊雙連通圖中,任意兩個節點之間都存在兩條及以上的路徑,並且這些路徑上的邊互不重複

  • 點雙連通圖:如果在無向圖中不存在割點,則稱它為點雙連通圖。在點雙連通圖中,如果節點數大於\(2\),則在任意兩個節點之間都存在兩條及以上路徑,並且這些路徑上的點互不重複

  • 邊雙連通分量:無向圖的極大邊雙連通子圖

    被稱為邊雙連通分量,記作\(e-DCC\)。邊雙連通分量就是刪掉橋(割邊)之後所留下的連通塊,連線兩個邊雙連通分量的邊就是橋

  • 點雙連通分量:無向圖的極大點雙連通子圖被稱為點雙連通分量,記作\(v-DCC\)

點雙連通分量的性質:

  • 點雙連通分量之間以割點連線,且兩個點雙連通分量之間有且只有一個割點
  • 每一個割點可以任意屬於多個點雙連通分量,因此求點雙連通分量時,可能包含重複的點
  • 只有一條邊連通的兩個點也是點雙連通分量

一張圖無向連通圖是“點雙連通圖”,當且僅當滿足以下兩個條件之一:

  • 圖的頂點個數不超過\(2\)
  • 圖中任意兩點都同時包含至少一個簡單環,其中“簡單環”是指不自交的環,也就是我們通常畫出的環。
  • 一張無向連通圖是“邊雙連通圖”,當且僅當任意一條邊都包含在至少一個簡單環中。

總結:

對於一個連通圖,如果任意兩點之間至少存在兩條沒有重複節點的路徑,則稱這個圖為點雙連通的(簡稱雙連通);如果任意兩點之間至少存在兩條沒有重複邊的路徑,則稱該圖為邊雙連通的。點雙連通圖的定義等價於任意兩條邊都同在一個簡單環中,而邊雙連通圖的定義等價於任意一條邊至少在一個簡單環中。對一個無向圖,點雙連通的極大子圖稱為點雙連通分量(簡稱雙連通分量),邊雙連通的極大子圖稱為邊雙連通分量。在每一個點雙連通圖中,內部無割點;在每一個邊雙連通圖中,內部無橋。

舉個栗子:

邊雙連通圖:

邊雙連通分量:

點雙連通圖:

點雙連通分量:

三、求解割點和割邊

四、成對變換