第九周 项目4 广义表应用

本文介绍了广义表的链式存储结构,并提供了C语言实现的代码,包括广义表节点类型定义、求长度、求深度、创建广义表及输出广义表的函数。广义表是一种可以包含子表的数据结构,通过递归方式处理原子值和子表。
摘要由CSDN通过智能技术生成
<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)      //
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值