美文网首页
数据结构

数据结构

作者: 萍水间人 | 来源:发表于2018-11-20 21:50 被阅读0次

广义表

数据结构中,广义表是一种比较重要的结构,至少在我看来

typedef struct lnode
{
    int tag;
    union
    {
        char data;
        struct lnode*sublist;
    }val;//联合体存储结构
    struct lnode *link;
}GLNode;

GLNode *CreatGL(char *&s)
{
    GLNode *g;
    char ch = *s++;//后置++的意思是先*s然后再++
    if (ch != '\0')
    {
        g = (GLNode *)malloc(sizeof(GLNode));
        if (ch == '(')
        {
            g->tag = 1;//新节点作为表头节点
            g->val.sublist = CreatGL(s);//递归构造子表并链接到表头节点
        }
        else if (ch == ')')
            g = NULL;
        else if (ch == '#')
            g = NULL;//这一行代码貌似没啥用,
        else
        {
            g->tag = 0;
            g->val.data = ch;
        }
    }
    else
        g = NULL;
    ch = *s++;
    if (g != NULL)
        if (ch == ',')
            g->link = CreatGL(s);
        else
            g->link = NULL;
    return g;
}

更新一下,上面的代码除了一点点问题,原因就是那几个ifelse if
写了半天才发现这个问题,惭愧2333

不过这个递归的过程确实很值得学习,广义表本身就是一种递归形式的表格。

相关文章

  • IOS开发_数据结构

    1、数据结构; 2、算法; 3、数据结构与算法; 1、数据结构; 1.1 概念: 数据结构:数据结构是计算...

  • py基础

    5Python集合容器 数据结构数据结构 一般将数据结构分为两大类: 线性数据结构和非线性数据结构。 线性数据结构...

  • 思维导图之数据结构+算法

    数据结构+算法 = 程序 数据结构比较 参考文章 数据结构与算法数据结构与算法(java)

  • 数据结构与算法分析:大纲]

    00数据结构与算法分析:大纲01数据结构:数组02数据结构:链表03数据结构:栈03数据结构:队列 本系列课程主要...

  • 数据结构:数组

    00数据结构与算法分析:大纲01数据结构:数组02数据结构:链表03数据结构:栈03数据结构:队列 数组 数组是一...

  • 数据结构—概述

    数据结构概述 数据结构概述:程序设计 = 数据结构 + 算法数据结构:数据元素之间存在所有特定关系的集合,数据结构...

  • OVS 源码分析整理

    OVS 核心代码 OVS 架构 OVS 主要的数据结构数据结构关系图主要的数据结构和数据结构的参数数据结构代码 d...

  • 01. 数据结构与算法绪论

    一、数据结构 1. 什么是数据结构 2. 数据结构的分类 3. 常用的数据结构 4. 数据结构的应用表现 二、算法...

  • 数据结构与算法 - 查找

    数据结构与算法系列文章数据结构与算法 - 时间复杂度数据结构与算法 - 线性表数据结构与算法 - 树形结构数据结构...

  • C#之数据结构(上)

    数据结构 一般将数据结构分为两大类: 线性数据结构和非线性数据结构。 线性数据结构有: 线性表、栈、队列、串、数组...

网友评论

      本文标题:数据结构

      本文链接:https://www.haomeiwen.com/subject/chjfqqtx.html