广义表的基本操作:创建,清楚,遍历,求深度,逆转
typedef enum {ATOM, LIST}ElemTag;
typedef int AtomType;
typedef struct __GLNode
{
ElemTag tag;
union
{
AtomType atom;
struct
{
struct __GLNode *hp, *tp;
}ptr;
}content;
}GList;
//匹配表内容
int sever(char **mainstr, char *substr)
{
int k = 0;
char *ph = *mainstr;
while(1)
{
if(**mainstr == '(')
{
k++;
}
else if(**mainstr == ')')
{
k--;
}
else if(**mainstr == ',')
{
if(k == 1)
{
**mainstr = '(';
break;
}
}
else if(** mainstr == '\0')
{
break;
}
(*mainstr)++;
}
if(k != 0)
{
ph = ph + k;
while(ph != *mainstr)
{
*substr++ = *ph++;
}
*substr = '\0';
}
else
{
ph++;
while(ph != (*mainstr - 1))
{
*substr++ = *ph&