广义表的存储结构可以采用头尾链表的方式实现,这种数据结构通过定义两个枚举值来区分元素类型:ATOM表示原子,LIST则表示子表。具体来说,我们定义了一个名为GLNode的结构体,它包含两个主要部分:
另外,广义表还可以扩展到线性存储形式,同样使用头尾链表。这里定义了一个简化版的GLNode结构体,只保留了tag和一个联合体,联合体中包含一个AtomType类型的atom域或一个指向GLNode的指针ht,分别对应原子和子表的存储。
广义表是一种非线性的数据结构,顾名思义,它也是线性表的一种推广。它被广泛的应用于人工智能等领域的表处理语言LISP语言中。在LISP语言中,广义表是一种最基本的数据结构,就连LISP 语言的程序也表示为一系列的广义表。