<pre name="code" class="csharp">//头文件
typedef char ElemType;
typedef struct lnode
{
int tag; //节点类型标识
union
{
ElemType data; //原子值
struct lnode *sublist; //指向子表的指针
} val;
struct lnode *link; //指向下一个元素
} GLNode; //广义表节点类型定义
int GLLength(GLNode *g); //求广义表g的长度
int GLDepth(GLNode *g); //求广义表g的深度
GLNode *CreateGL(char *&s); //返回由括号表示法表示s的广义表链式存储结构
void DispGL(GLNode *g); //输出广义表g
//源文件
#include <stdio.h>
#include <malloc.h>
#include "glist.h"
int GLLength(GLNode *g) //求广义表g的长度
{
int n=0;
GLNode *g1;
g1=g->val.sublist; //g指向广义表的第一个元素
while (g1!=NULL)
{
n++; //累加元素个数
g1=g1->link;
}
return n;
}
int GLDepth(GLNode *g) //