数据结构中的广义列表


在本节,我们将了解广义列表。广义列表可定义如下 −

广义列表 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 千次观看

开启您的 职业生涯

完成课程后获得认证

开始
广告
© . All rights reserved.