广义表
结点结构(扩展线性链表)
1 typedef char AtomType; 2 enum ElemTag { ATOM, LIST }; 3 4 typedef struct GLNode 5 { 6 ElemTag tag; 7 8 union 9 { 10 AtomType atom; 11 struct GLNode* head; 12 }value; 13 14 struct GLNode* next; 15 }GLNode;
创建广义表(带头结点:因为广义表本身也是一个表结点)
1 GLNode* CreateGList(GLNode* A) 2 {//带头结点 3 //假定广义表中元素类型为ElemType为char类型,每个原子的值被限定为单个字符。 4 //并假设广义表是一个正确的表达式,其格式为: 5 //元素之间用一个逗号分隔,表元素的起止符号为左、右括号,空表在元括号内包含#。 6 char ch = '