//【数据结构】NOJ014 求广义表深度
//表头-表尾表示法
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
//广义表定义
typedef char Atomtype;
typedef enum{ATOM,LIST}NodeTag; //枚举类型
typedef struct GLNode //一个表结点
{
NodeTag tag;
union
{
Atomtype atom; //元素值
struct
{
struct GLNode *hp,*tp; //表头结点、表尾结点
}ptr;
};
}GLNode,*GList;
bool Create(GList *L,char *s); //根据输入字符串s,创建广义表
int GetDepthByhp(GList L); //按表头-表尾分析方法求表深
void server(char *s1,char *s); //分离s为s1头字符串与s尾字符串
void substr(char *s,char *s1,int start,int len); //复制字符串
bool Create(GList *L,char *s)
{//将字符串s插入L
char s1[100]; //存储待插入的表头结点
GList p,q; //p始终存储第一级广义表表尾结点,q存储p的前一个结点
if(s==NULL) //s为空则当前表空
(*L)=NULL;
else
{
(*L)=(GList)malloc(sizeof(GLNode)); //新建一个表结点
if(strlen(s)==1) //原子结点
【数据结构】NOJ014 求广义表深度
最新推荐文章于 2023-03-26 13:45:38 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)