广义表

作者: 冰鑫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元多项式中的每一项的变化数目的不均匀性和变元信息的重要性,故不适应于线性表表示。

广义表的递归算法

求广义表的深度

复制广义表

建立广义表的存储结构

相关文章

  • 广义表

    广义表广义表的定义广义表的存储结构广义表的M元多项式广义表的递归算法 一、广义表的定义:广义表(Lists,又称列...

  • 广义表

    是由零个或多个原子或子表组成的优先序列,是线性表的推广。 广义表的存储结构 广义表中的数据元素可以具有不同的结构,...

  • 广义表

    1. 广义表:元素为原子项或广义表 A = () —— 空表,长度为0B = (e) —— 表B只有一个原子e,...

  • 广义表

    当广义表ls 非空时,称第一个元素a1 为ls 的表头(head),称其余元素组成的表(a2,…,ai,…,an)...

  • 广义表

    广义表的定义 广义表是线性表的推广,是一种非线性的数据结构,也有人称其为列表。广义表的实现主要应用递归,通过广义表...

  • 广义表

    在线性表中 表元素特点:每个元素都是不可再分的原子。 在广义表中,表结点既可以是原子(不可再分),也可以是广义表本...

  • 广义表

    应用:存储递归的线性结构啊,比如,忘了…… 递归结构,外层结构为线性,内层结构非线形但有序 记为LS,元素分为子表...

  • 广义表ListS

    广义表就是能存原子也能存广义表的表

  • #数据结构#—广义表

    广义表 广义表,又称列表,也是一种线性存储结构。同数组类似,广义表中既可以存储不可再分的元素,也可以存储广义表,记...

  • 广义表输入与输出

    理解广义表: 完整代码: glist.h 建立广义表: 其他操作: 输出结果:

网友评论

      本文标题:广义表

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