构建一张广义表,计算广义表的长度和深度。
/*
*广义表的实现*
1.构建广义表
形如(a,d,(e,(w,c),(),(r,t)),(((q))));其中空表表示为(),括弧中不添加任何字符
2.求广义表长度
3.广义表深度
*/
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
//构建广义表数据节点
class GLNode
{
public:
int tag;//设置标志位,判断是否存在子表
//定义共用体,当前是否存储数据与是否需生成子表不并存
union
{
char data;//存储数据
class GLNode *sub_list;//子表指针
}val;
class GLNode *link;//后继节点指针
};
//广义表的实现
class GList
{
public:
GList(){}
~GList()
{
release(G);
}
//构建广义表,形参name为文件名
void Create(string name)
{
read.open(name);
getline(read, str);//读取一行字符
read.close();
cout << str << endl;
G = CreateGL(G, str);//构建广义表
}
//求广义表长度
int length()
{
int n = get_length(G->val.sub_list);
return n;
}
//求广义表深度
int deep()
{
int n = get_deep(G);
return n;
}
//释放节点空间
void release(

本文介绍如何使用C++编程实现广义表,并计算其长度和深度。通过对广义表结构的理解,利用递归方法进行操作,达到求解目标。
最低0.47元/天 解锁文章
893

被折叠的 条评论
为什么被折叠?



