前向星是一種用於存儲圖的數據結構,它以儲存邊的方式來存儲圖。這種數據結構通常在點的數目太多,或兩點之間有多條弧的時候使用。前向星的構造方法如下:讀入每條邊的信息,將邊存放在數組中,把數組中的邊按照起點順序排序,前向星就構造完了。排序可以使用基數排序,時間複雜度為O(m),m為邊數。總體時間並不會遜色於鄰接表。
前向星的性質如下:
前向星不需要像鄰接表那樣用指針指向下一條邊,還是挺方便的。但是,由於前向星初始化需要快排一遍,相對鄰接表要慢許多。
前向星除了不能直接用起點終點定位以外,幾乎是完美的。
前向星的代碼實現如下:
前向星中有兩個數組,A[i].to表示第i條邊的終點,A[i].next表示與第i條邊同起點的下一條邊的存儲位置,A[i].v為邊權值。
另外還有一個數組a[],它是用來表示以i為起點的第一條邊存儲的位置。
以上是前向星的相關介紹。