数据结构广义表编程(C语言)

来源:百度知道 编辑:UC知道 时间:2024/05/14 07:55:12
1、利用广义表的头尾链表存储结构建立广义表,要求:通过输入的广义表表达式建立相应的广义表,并且输出广义表;
2、在1题的基础上,求出该表的表头和表尾;
3、将已知广义表复制得到新表;
4、按从左到右的顺序输出广义表的原子及各原子的层次。(四题均用递归方法实现)

#include"c1.h"
typedef char AtomType; // 定义原子类型为字符型
#include"c5-5.h" // 定义广义表的头尾链表存储
#include"bo5-5.cpp"

void visit(AtomType e)
{
printf("%c ", e);
}

void main()
{
char p[80];
SString t;
GList l,m;
InitGList(l);
InitGList(m);
printf("空广义表l的深度=%d l是否空?%d(1:是 0:否)\n",GListDepth(l),GListEmpty(l));
printf("请输入广义表l(书写形式:空表:(),单原子:(a),其它:(a,(b),c)):\n");
gets(p);
StrAssign(t,p);
CreateGList(l,t);
printf("广义表l的长度=%d\n",GListLength(l));
printf("广义表l的深度=%d l是否空?%d(1:是 0:否)\n",GListDepth(l),GListEmpty(l));
printf("遍历广义表l:\n");
//Traverse_GL(l,visit);
PrintAtomLevel( l,0);
printf("\n复制广义表m=l\n");
CopyGList(m,l);
printf("广义表m的长度=%d\n",GListLength(