③若广义表Ls非空(n≥1),则al是LS的表头,其余元素组成的表(a1,a2,…,an)称为Ls的表尾。
④广义表是递归定义的
画图举例:

代码实现:
[cpp] view plain copy
#include <iostream>
using namespace std;
//表示广义表的结点类型
enum NodeType
{
HEAD_TYPE,//头结点类型
VALUE_TYPE,//值结点类型
SUB_TYPE//子表类型
};
//表示广义表结点的结构体
struct GeneraListNode
{
NodeType _type;//结点类型
GeneraListNode *_next;//存放结点的下一个元素的地址
//一个结点要么是值结点要么是子表,故用联合体来存放节省一定的空间
//若是值结点则存放的是值,是子表结点的话存放的是子表结点头结点的地址
union{
char _value;
GeneraListNode *_subLink;
};
GeneraListNode(NodeType type = HEAD_TYPE, char value = '