十字鏈表畫法——藍墨雲班課實踐改錯

十字鏈表畫法——藍墨雲班課實踐改錯

課堂題目

分析課堂的錯誤做業

對十字鏈表的縱軸理解的不是很清晰,當時畫的不完整。數組

課後的解決

  • 十字鏈表是爲了便於求得圖中頂點的度(出度和入度)而提出來的。它是綜合鄰接表和逆鄰接表形式的一種鏈式存儲結構。
  • 在十字鏈表存儲結構中,有向圖中的頂點的結構以下所示:
  • 其中data表示頂點的具體數據信息,而firstIn則表示指向以該頂點爲弧頭的第一個弧節點。而firstOut則表示指向以該頂點爲弧尾的第一個弧節點。爲了表示有向圖中全部的頂點,採用一個頂點數組存儲每個結點,以下圖所示:
  • 另外,在十字鏈表存儲結構中,有向圖中的每一條弧都有一個弧結點與之對應,具體的弧結點結構以下所示:
  • 其中的tailVex表示該弧的弧尾頂點在頂點數組xList中的位置,headVex表示該弧的弧頭頂點在頂點數組中的位置。hLink則表示指向弧頭相同的下一條弧,tLink則表示指向弧尾相同的下一條弧。
  • 從十字鏈表的數據結構來看,每個頂點對應兩個鏈表:以該頂點爲弧尾的弧結點所組成的鏈表以及以該頂點爲弧頭的弧結點所組成的鏈表。
  • 上述介紹來源於博客數據結構

    具體的畫法步驟

    1.首先,根據題目,畫出全部的頂點集並排成一列 。每個頂點分爲三個小格,第一個小格按順序填上頂點名稱,第二個小格判斷該頂點是否有入度,第三個小格判斷該頂點是否有出度;若是是,就畫一個點;反之畫一個「^」符號。
    以下圖所示:
    .net

2.而後畫出邊集並將其鏈接起來,來構建十字鏈表的橫軸。鏈接的要點是:從頂點的第三個小格表示出的方向開始,指向由4個小格構成的邊集;邊集包括4個小格,第一個小格表明起點、第二個小格表明終點、第三個小格是來判斷是否有某些頂點的入邊、第四個小格判斷是否還存在從同一頂點出發的邊。
3d

3.其次就是十字鏈表縱軸的畫法了。咱們須要回到頂點集的第二個格子,首先去判斷其是否有入的邊,即若該頂點的第二個格子中是點「·」的話,該頂點就有縱軸;從有向圖中尋找該頂點的入度,對應到邊集裏面,用箭頭鏈接上,十字鏈表就算是畫完了。
blog

相關文章
相關標籤/搜索