实现广义表的基本运算

本文档展示了一个C语言程序,用于实现广义表的链式存储结构,包括创建广义表、输出广义表的长度和深度等基本操作。通过示例字符串"((b,a),(((a,b),c),d))"进行演示,程序成功输出了广义表及其长度和深度。" 104267494,7340078,Mac安装Homebrew与配置镜像加速,"['mac', 'brew']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
*    实验题目:
*        实现广义表的基本运算
*    实验内容:
*        实现广义表的各种运算,设计一个程序,实现如下功能:
*    1、建立广义表g = "((b,a),(((a,b),c),d))"的链式存储结构
*    2、输出广义表g的长度
*    3、输出广义表g的深度
*/


#include <stdio.h>
#include <malloc.h>

typedef char ElemType;
typedef struct lnode
{
    int tag;                        // 结点类型标识
    union
    {
        ElemType data;
        struct lnode *sublist;
    }val;                            
    struct lnode *link;                // 指向下一个元素
}GLNode;

/*----------------------------由串s建立一个广义表-------------------------*/
GLNode *CreateGL(char *&s)                            // 指针的引用
{
    GLNode *h;
    char ch;
    
    //(b,(b,a,a,a),((a,b),c))
    ch = *s++;                                        // 取一个扫描字符(先取值,然后s指向下一个字符)
//    printf("%s line = %d, ch = %c\n", __func__, __LINE__, ch);
    if(ch != '\0')                       &nbs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值