广义表_数据结构广义表的长度和深度

广义表_数据结构广义表的长度和深度概念广义表(GeneralizedLists)是n(n≥0)个数据元素a1,a2,…,ai,…,an的有序序列,一般记作:ls=(a1,a2,…,ai,…,an)其中:ls是广义表的名称,


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

 

概念

    广义表(Generalized Lists)是n(n≥0)个数据元素a1,a2,…,ai,…,an 的有序序列,一般记作:
                                                           ls=(a1,a2,…,ai,…,an)
 
    
其中:ls 是广义表的名称,n 是它的长度每个ai(1≤i≤n)是ls 的成员:它可以是单个元素(“
广义表ls 的
单元素
”),也可以是一个广义表(“
广义表ls 的
子表
”)。
    
当广义表ls 非空时,称第一个元素a1 为ls 的表头(head),称其余元素组成的表(a2,…,ai,…,an)为ls 的表尾(tail)。
 
广义表的重要性质:
 
⑴广义表是一种多层次的数据结构。广义表的元素可以是单元素,也可以是子表,而子表的元素还可以是子表,…。
 
⑵广义表可以是递归的表,即广义表也可以是其自身的子表。例如表E 就是一个递归的表。
 
⑶广义表可以为其他表所共享。例如,表A、表B、表C 是表D 的共享子表。在D中可以不必列出子表的值,而用子表的名称来引用。
 
一些广义表的例子:
A =()
B =(e)
C =(a,(b,c,d))
D =(A,B,C)
E =(a,E)
F =(())
 

存储结构

头尾表示法
    由于广义表中的数据元素既可能是列表也可能是单元素,相应地在头尾表示法中结点的结构形式有两种:一种是
表结点,用以表示列表;另一种是
元素结点,用以表示单元素:
  1. 表结点中包括一个指向表头的指针和指向表尾的指针;
  2. 元素结点中应该包括所表示单元素的元素值。
  3. 为了区分这两类结点,在结点中还要设置一个标志域:如果标志为1,则表示该结点为表结点;如果标志为0,则表示该结点为元素结点。
广义表_数据结构广义表的长度和深度
例子:
 
A =()
B =(e)
C =(a,(b,c,d))
D =(A,B,C)
E =(a,E)
F =(())
 
广义表_数据结构广义表的长度和深度
 
 
    
    
采用头尾表示法容易分清列表中单元素或子表所在的
层次
。例如,在广义表D 中,单元素a 和e 在同一层次上,而单元素b、c、d 在同一层次上且比a 和e 低一层,子表B 和C 在同一层次上。另外,最高层的表结点的个数即为广义表的长度。例如,在广义表D 的最高层有三个表结点,其广义表的长度为3。
 
孩子兄弟表示法
两种结点形式:一种是
有孩子结点,用以表示
列表;另一种是
无孩子结点,用以表示
单元素。
  1. 在有孩子结点中包括一个指向第一个孩子(长子)的指针和一个指向兄弟的指针
  2. 在无孩子结点中包括一个指向兄弟的指针和该元素的元素值
  3. 为了能区分这两类结点,在结点中还要设置一个标志域:如果标志为1,则表示该结点为有孩子结点;如果标志为0,则表示该结点为无孩子结点。
广义表_数据结构广义表的长度和深度
例子:
 
A =()
B =(e)
C =(a,(b,c,d))
D =(A,B,C)
E =(a,E)
F =(())
 
广义表_数据结构广义表的长度和深度

 
    
    
采用孩子兄弟表示法时,表达式中的左括号“(”对应存储表示中的tag=1 的结点,且最高层结点的tp域必为NULL。
 
 
 

参考来源:C语言中文网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167189.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pfx 证书导出公钥和私钥「建议收藏」

    pfx 证书导出公钥和私钥「建议收藏」pfx证书导出公钥和私钥在做银联支付的时候,因为是多商户的,所以采用单独的私钥加密,需要提取pfx中的私钥准备准备pfx格式的证书[root@blueacp_crt]#tree.├──acp_test_sign.pfx提取密钥对格式:opensslpkcs12-inacp_test_sign.pfx-nocerts-nodes-outacp_test_sign.key[root@blueacp_crt]#opensslpkcs12-inacp_t

    2022年6月10日
  • 搭建jenkins实现自动化部署微服务_自动化部署平台搭建

    搭建jenkins实现自动化部署微服务_自动化部署平台搭建一、安装jenkins1、添加yumrepos,然后安装注:如果上边的执行成功就不用再执行这两行了注:如果网络不好需要重试几次2、如果未安装java还需安装java3、启动和停止如果启动

    2022年8月1日
  • icmp回复报文_常见的ICMP报文

    icmp回复报文_常见的ICMP报文常见的ICMP报文相应请求我们用的ping操作中就包括了相应请求(类型字段值为8)和应答(类型字段值为0)ICMP报文。过程:一台主机向一个节点发送一个类型字段值为8的ICMP报文,如果途中没有异常(如果没有被路由丢弃,目标不回应ICMP或者传输失败),则目标返回类型字段值为0的ICMP报文,说明这台主机存在。目标不可达,源抑制和超时报文这三种报文的格式是一样的。(1)目标不可到达报文(类型值为3…

    2022年5月1日
  • 计算机考研数据库题库及答案_数据结构历年考研真题

    计算机考研数据库题库及答案_数据结构历年考研真题在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是()。A.充分必要条件B.必要条件C.充分条件D.既不充分也不必要条件。A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段。在关系模式R(U,F)中,Y∈XF+是X→Y是否成立的()。A.数据库系统B.文件系统C.人工管理D.数据项管理。A.网络系统B.数据库系统C.操作系统D.数据库。A.外模式B.内模式C.存储模式D.模式。…

    2022年10月26日
  • STM32芯片之看门狗

    STM32芯片之看门狗本章介绍STM32F4**系列芯片的看门狗模块内容STM32F4**系列芯片具有两个嵌入式看门狗外设,具有安全性高、定时准确及使用灵活的优点。两个看门狗外设(独立和窗口)均可用于检测并解决由软件错误

    2022年7月1日
  • 计算机电脑怎么改皮肤,终极:如何更改计算机鼠标的皮肤「建议收藏」

    如何更改计算机鼠标的皮肤图33.点击左侧菜单栏中的“鼠标”,进入鼠标设置页面如何更改计算机鼠标的皮肤图44.在鼠标设置页面中找到“其他鼠标选项”的蓝线,单击以输入,在弹出窗口中单击“指针”,然后单击“解决方案”以查看下图<如何更改计算机鼠标的皮肤图55.这是Windows的默认鼠标指针页面,但是许多朋友会看到他们朋友的计算机鼠标指针具有其他新颖的样式,并且不包含在Windows的默认指…

    2022年4月12日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号