概述
广义表是线性表的推广,是由0个或多个单元素或子表组成的有限序列。
广义表与线性表的区别在于:线性表的元素都是结构上不可分的单元素,而广义表的元素既可以是单元素,也可以是有结构的表。
广义表的长度是指广义表中元素的个数。广义表的深度是指广义表展开后所含的括号的最大层数。
非空广义表的第一个元素称为表头,他可以是一个单元素,也可以是一个子表;除表头元素之外,由其余元素所构成的表称为表尾,非空广义表的表尾必定是一个表。
广义表的特点
广义表可以是多层次的结构,因为广义表的元素可以是子表,而子表的元素还可以是子表。
广义表中的元素可以是已经定义的广义表的名字,所以一个广义表可被其他广义表所共享。
广义表可以是一个递归的表,即广义表中的元素也可以是本广义表的名字。
广义表的存储结构
由于广义表中的元素本身又可以具有结构,它是一种带有层次的非线性结构,因此难以用顺序存储结构表示,通常采用链式存储结构。
若广义表不为空,则可分解为表头和表尾两部分。反之,一对确定的表头和表尾可唯一确定一个广义表。
广义表中的元素可以是原子也可以是子表,针对原子和子表可以分别设计不同的节点结构。表节点有标志域、指示表头的指针域和指示表尾的指针域;而原子只有标志域和值域。
例如广义表LS=(a,(b,c,d)),其链式存储结构如图所示:
最后
以上就是感动犀牛为你收集整理的广义表的全部内容,希望文章能够帮你解决广义表所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复