資料結構中的廣義列表


在本節,我們將瞭解廣義列表。廣義列表可定義如下 −

廣義列表 L 是 n 個元素的有限序列(n ≥ 0)。元素 ei 既可以是原子(單個元素),也可以是另一個廣義列表。不是原子的元素 ei 將是 L 的子列表。假設 L 是 ((A, B, C), ((D, E), F), G)。此處 L 有三個元素子列表 (A, B, C)、子列表 ((D, E), F) 和原子 G。子列表 ((D, E), F) 又有兩個元素:一個子列表 (D, E) 和原子 F。

在 C++ 中,我們可以像下面一樣定義廣義列表結構 −

class GeneralizedListNode{
   private:
      GeneralizedListNode *next;
      bool tag;
      union{
         char data;
         GeneralizedListNode *down;
      };
};

因此,如果標記為真,則由節點表示的元素是一個子列表。down 指向子列表中的第一個節點。如果標記為假,則該元素為原子。next 指標指向列表中的下一個元素。列表將如下所示。

更新於: 2020 年 8 月 10 日

5 千次觀看

開啟您的 職業生涯

完成課程後獲得認證

開始
廣告