【软考】广义表

1. 说明
  • 1.广义表是线性表的推广,是由0个多个单元素子表组成的有限序列。
  • 2.广义表与线性表的区别在于:线性表的元素都是结构上不可分的单元素,而广义表的元素既可以是单元素,也可以是有结构的表
  • 3.广义表一般记为LS=(a1,a2,…,an )
  • 4.a(1<i<n)既可以是单个元素,又可以是广义表,分别称为原子子表
  • 5.广义表的长度是指广义表中元素的个数。
  • 6.广义表的深度是指广义表展开后所含的括号的最大层数。
2. 基本操作
  • 1.与线性表类似,广义表也有查找插入删除等操作。由于广义表的结构较复杂,其各种运算的实现也不如线性表简单,这里只讨论两个重要的运算。
  • 2.取表头 head(LS)。非空广义表 LS 的第一个元素称为表头,它可以是一个单元素,也可以是一个子表。
  • 3.取表尾 tail(LS)。在非空广义表中,除表头元素之外,由其余元素所构成的表称为表尾。非空广义表的表尾必定是一个表。
  • 4.
3. 特点
  • 1.广义表可以是多层次的结构,因为广义表的元素可以是子表,而子表的元素还可以是子表。
  • 2.广义表中的元素可以是已经定义的广义表的名字,所以一个广义表可被其他广义表所共享。
  • 3.广义表可以是一个递归的表,即广义表中的元素也可以是本广义表的名字。
4. 存储结构
  • 1.由于广义表中的元素本身又可以具有结构,它是一种带有层次的非线性结构,因此难以用顺序存储结构表示,通常采用链式存储结构。
  • 2.若广义表不空,则可分解为表头和表尾两部分。
  • 3.一对确定的表头和表尾可唯一确定一个广义表。
  • 4.针对原子和子表可分别设计不同的结点结构,如图所示。
    在这里插入图片描述
  • 5.对于广义表 LS=(a,(b,c,d),其链式存储结构如图所示。
    在这里插入图片描述
5. 例题
5.1 例题1
  • 1.题目
1.广义表中的元素可以是原子,也可以是表,因此广义表的适用存储结构是(A)
A.链表
B.静态数组
C.动态数组
D.散列表
  • 2.解析
1.链表是最灵活的存储结构,它允许同一个表中的结点类型可以不一致。
2.静态数组是固定长度的数组,动态数组允许扩容,但是数组中的元素必须是相同类型的。
3.散列表的特点是元素的存储位置与其关键字值相关。
  • 14
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王佑辉

老板,赏点吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值