广义表

作者: 冰鑫925 | 来源:发表于2018-01-03 15:48 被阅读59次

    广义表的定义

    广义表是线性表的推广,是一种非线性的数据结构,也有人称其为列表。
    广义表的实现主要应用递归,通过广义表可以更加理解和灵活使用递归


    image.png

    列表的元素可以是数据元素或子表,列表可以是一个递归的表。

    广义表的存储结构

    由于广义表的元素可以具有不同的结构(数据元素或子表),所以难以用顺序存储结构表示,通常采取链式存储结构。
    广义表的节点存储结构
    <1>头 HEAD <2>数据元素VALUE <3>子表 SUB


    image.png

    m元多项式的表示

    一元多项式可以一个长度为m且每个数据元素有两个数据项(系数项和指数项)的线性表来表示。
    m元多项式,一个m元多项式的每一项,最多有m个变元,如果用线性表来表示,如果用线性表来表示则,每个数据元素需要用m+1个数据项,以存储一个系数值和m个指数值。存在问题:
    1、无论多项式中的各项变元是多是少,若都按照m个变元,分配存储空间,则将造成浪费。反之,按照实际的变元数分配存储空间,就会造成节点的大小不均,给操作来来不便。
    2、对m值不同的多项式,线性表中的节点的大小也不同,这同样会引起存储管理的不便。
    因此,由于m元多项式中的每一项的变化数目的不均匀性和变元信息的重要性,故不适应于线性表表示。

    广义表的递归算法

    求广义表的深度

    复制广义表

    建立广义表的存储结构

    相关文章

      网友评论

          本文标题:广义表

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