当前位置: 首页 > news >正文

广义表基础

1.基本定义
(1)基础
①A=() //空表
②B=(e) //只含有一个原子的广义表
③C=(a,(b,c,d)) //含有一个 原子a 和一个 子表(a,b,c) 的广义表
④D=(A,B,C)=((),(e),(a,(b,c,d)))
第一个子表为空表,共含有三个子表()、(e)、(a,(b,c,d))
⑤E=(a,E)
广义表 E 中有两个元素,原子 a 和它本身。
这是一个递归广义表,等同于:E = (a,(a,(a,…)))
注:递归表的深度是无穷值,长度是有限值

(2)广义表的长度和深度
①长度: 最外层包含 元素(=原子+子表) 个数
(a1,a2,…,an) 的长度为 n
(a,(b,c,d)) 长度为 2,为a和(b,c,d)
((a,b,c)) 长度为 1
空表 () 长度为 0
递归广义表E=(a,E) 长度为2

②深度: 广义表中括号的最大嵌套层数。原子的深度为0,空表的深度为1
(a,(b,c,d)) 深度为2
空表() 深度为1
递归广义表E=(a,E) 深度为无穷

( a, ( a,b ), d, e, ( (i,j) ,k ) ) 深度为3
解:可拆解为
a:0
(a,b):1
d:0
e:0
( (i,j) , k):2
加最外层括号的1,最大为3

(3)广义表的表头和表尾
①表头Head: 当广义表不为空表时,第一个元素(可能为子表和原子)称为表头
注:(非空)广义表的表头是原子或广义表
②表尾Tail: 当广义表非空时,除去表头,剩余元素组成的新广义表称为表尾
注:(非空)广义表的表尾总是一个广义表
*非空加括号表示选项中不写非空也是对的,因为空表没有表头和表尾,提到表头或表尾一定是非空广义表

如:
(1,(1,2,3),5) 表头为原子1,表尾为((1,2,3),5)
(1) 表头为原子1,表尾为空表()
( a, (b) ) 的表头为原子a,表尾为((b))
(a,b,c)的表头为原子a,表尾为(b,c)

2.Head与Tail
(1)已知广义表L=(a,(b,(c,(d)), e), f )
L1=Tail(L)=((b,(c,(d)), e), f )
L2=Head(L1)= (b,(c,(d)), e)
L3=Tail(L2)=((c,(d)), e)
L4=Head(L3)=(c,(d))
L5=Head(L4)= c

(2)已知广义表A=(((a)),(b),c,(a),(((d,e)))),写出表的长度与深度,并用求头部、尾部的方式求出e
解:长度5,深度4
Tail(A)=((b),c,(a),(((d,e))))
Tail(Tail(A))=(c,(a),(((d,e))))
Tail(Tail(Tail(A)))=((a),(((d,e))))
Tail(Tail(Tail(Tail(A))))=((((d,e))))
Head(Tail(Tail(Tail(Tail(A)))))=(((d,e)))
Head(Head(Tail(Tail(Tail(Tail(A))))))=((d,e))
Head(Head(Head(Tail(Tail(Tail(Tail(A)))))))=(d,e)
Tail(Head(Head(Head(Tail(Tail(Tail(Tail(A))))))))=(e)
Head(Tail(Head(Head(Head(Tail(Tail(Tail(Tail(A)))))))))=e
或写为:HTHHHTTTT(A)=e

(3)广义表A=(a,b,(c,d),(e,(f,g))),则表达式Head(Tail(head(Tail(Tail(A)))的值为:d

3.广义表的一种存储结构(链式存储)

tagsublist/datalink

①tag域为标志字段
②sublist/data由tag决定,为0时表示该节点是原子节点,则第二个域为data,存放原子元素的信息;为1时,表示该节点是表节点,存放sublist,即存放子表第一个元素对应节点的地址。
③link域存放与本元素同一层的下一个元素所在节点的地址,当本元素是所在层的最后一个元素时,link域为NULL。

例:已知广义表A=(((a)),(b),c,(a),(((d,e)))),画出其一种存储结构图

在这里插入图片描述

相关文章:

  • wordpress 短代码插件/百度推广登录入口电脑
  • wordpress 做网站/google官网注册
  • 新版wordpress文章编辑界面/在哪里推广比较好
  • 东营网站建设策划内容/信息流广告接单平台
  • 济宁做网站建设的公司/东莞seo关键词
  • wordpress分类目录样式模板/如何让百度收录自己的网站信息
  • 【数据结构】------ 堆
  • 踩内存问题定位手段汇总
  • 高中物理基础学习笔记一
  • 【ICLR 2023】Diffusion Models扩散模型和Prompt Learning提示学习:prompt-to-prompt
  • 计算机毕业设计JAVA基于微服务架构的设备管理系统的设计与实现mybatis+源码+调试部署+系统+数据库+lw
  • 信安软考 第二十五章 移动应用安全需要分析与安全保护工程
  • 基于A*算法的多机器人图形路径规划解决策略(Matlab代码实现)
  • FreeRTOS 任务通知浅析
  • 【docker】docker的基础命令
  • 忘记密码找不回?不存在的:python自动解密解码,简直异常轻松~
  • #预处理和函数的对比以及条件编译
  • NPP净初级生产力数据获取/气象数据/太阳辐射/NDVI数据