大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
概念
其中:ls 是广义表的名称,n 是它的长度每个ai(1≤i≤n)是ls 的成员:它可以是单个元素(“
广义表ls 的
单元素
”),也可以是一个广义表(“
广义表ls 的
子表
”)。
当广义表ls 非空时,称第一个元素a1 为ls 的表头(head),称其余元素组成的表(a2,…,ai,…,an)为ls 的表尾(tail)。
⑴广义表是一种多层次的数据结构。广义表的元素可以是单元素,也可以是子表,而子表的元素还可以是子表,…。
⑵广义表可以是递归的表,即广义表也可以是其自身的子表。例如表E 就是一个递归的表。
⑶广义表可以为其他表所共享。例如,表A、表B、表C 是表D 的共享子表。在D中可以不必列出子表的值,而用子表的名称来引用。
存储结构
头尾表示法
表结点,用以表示列表;另一种是
元素结点,用以表示单元素:
- 表结点中包括一个指向表头的指针和指向表尾的指针;
- 元素结点中应该包括所表示单元素的元素值。
- 为了区分这两类结点,在结点中还要设置一个标志域:如果标志为1,则表示该结点为表结点;如果标志为0,则表示该结点为元素结点。
采用头尾表示法容易分清列表中单元素或子表所在的
层次
。例如,在广义表D 中,单元素a 和e 在同一层次上,而单元素b、c、d 在同一层次上且比a 和e 低一层,子表B 和C 在同一层次上。另外,最高层的表结点的个数即为广义表的长度。例如,在广义表D 的最高层有三个表结点,其广义表的长度为3。
孩子兄弟表示法
有孩子结点,用以表示
列表;另一种是
无孩子结点,用以表示
单元素。
- 在有孩子结点中包括一个指向第一个孩子(长子)的指针和一个指向兄弟的指针
- 在无孩子结点中包括一个指向兄弟的指针和该元素的元素值
- 为了能区分这两类结点,在结点中还要设置一个标志域:如果标志为1,则表示该结点为有孩子结点;如果标志为0,则表示该结点为无孩子结点。
采用孩子兄弟表示法时,表达式中的左括号“(”对应存储表示中的tag=1 的结点,且最高层结点的tp域必为NULL。
参考来源:C语言中文网
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/167189.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...