广义表求原子
来源:互联网 发布:印度 网络空间安全 编辑:程序博客网 时间:2024/06/05 03:35
整理自《数据结构教程》,这一段在书上的线性表章节。
广义表的存储结构:
用链接的存储结构表示广义表。可以用如下结点形式表示广义表的一个元素。
|Tag | data/Dlink | link
其中Tag是标识字段:tag=0表示原子,tag=1表示广义表(的子表)
Dlink/data是数据域:tag=0时,该字段是data,tag=1时,该字段是dlink,是指向子表的指针
link指针:指向下一个结点的指针,若没有下一个结点,则置空。
【例子】
(1)D=( ) //空表,长度0
(2)A=(a,(b,c)) //长度2,a元素,(b,c)线性表
(3)B=(A,A,()) //长度3,广义表A,A,空表
(4)C=(a,C) //长度为2的递归表,相当于C的无限表
【结论】
(1)一个广义表可以被其他广义表所共享。
(2)广义表可以递归。
【计算】
(1)head是取第一个元素,可以是子表也可以是原子,删去最外层括号。
(2)tail是取head之外的,除了第一个元素之外的,所有的元素,包括最外层的括号,保留!
【例子】
1、对广义表A=((a,b,c),(d,e,f))做运算head(tail(head(tail(A)))),结果是?
答案:e
步骤:
Step1:tail(A)=((d,e,f))
Step2:head(tail(A))=(d,e,f)
Step3:tail(head(tail(A)))=(e,f)
Step4:head(tail(head(tail(A))))=e
2、已知一个广义表B=(b,B,(b,B)),请画出它的存储结构,并写出其表长的值。
看图第一行,可以得出长度为3.
(求某表长度,数图中对应行有几个结点即可。比如图中可知B长度3,(b,B)长度2)
- 广义表求原子
- 7-7 使用原子 和 子表存储的广义表,<求广义表的长度
- 广义表的原子统计
- 第九周上机实践—项目4(2)—求广义表中的原子个数及最大原子
- 7-8 使用原子 和 子表结构 ,求广义表 的深度
- 7-6 用原子和字表的存储结构 , 编写求广义表长度的函数
- 广义表求深度
- 项目4.1 -- 广义表的原子统计
- 项目4.1 -- 广义表的原子统计
- 第九周 广义表的原子统计
- 数据结构实践——广义表的原子统计
- 第九周-项目4-广义表的原子统计
- 第九周项目四广义表的原子统计
- 第九周 【项目4.2 -广义表的原子统计】
- 第九周项目4--广义表算法库及应用--(2)广义表的原子个数和最大原子
- 广义表的创建,遍历,求深度
- 广义表求长度和深度C++
- 广义表的建立与求深度
- 在IDEA中,MAVEN项目依赖报错问题(dependencies中总是有红色波浪线)
- Mybatis传多个参数(三种解决方案)
- java初学Day2
- 51nod 1682 中位数计数
- 音视频同步原理解析
- 广义表求原子
- PHP常用header头部
- 设计模式---适配器模式
- GL_TEXTURE0
- NestedScrollView 内嵌 RecyclerView 滑动监听问题
- 关于.net c#在获取请求参数的时候,一个参数总是获取得逗号分隔的重复值情况原因之一
- Vue2.0使用props传递数据---6
- zk实现分布式锁
- linux权限和指令