广义表

广义表(广义表也称为列表,是线性表的一种推广,也是数据元素的有序序列)
一、基础
1.如何设定链表结点?广义表中的数据元素可能为单元素(原子)或子表,由此需要两种结点:一种是表结点,用以表示广义表;一种是单元素结点,用以表示单元素(原子)。
2.广义表的每个元素都是原子时,广义表便成了线性表。
3.广义表具有以下重要的特性:
(1)广义表中的数据元素是有相对次序的。
(2)广义表的长度定义为最外层包含元素的个数。
(3)广义表的深度定义为所含括弧的重数,其中原子的深度为0,空表的深度为1。(看右侧括号的个数即深度), 一个广义表的深度等于括号联套的最大层数。
(4)广义表可以共享,一个广义表可以被其他广义表共享,这种共享广义表称为再入表。
(5)广义表可以是一个递归的表,一个广义表可以是自己的子表,这种广义表称为递归表。递归表的深度是无穷值,而长度是有限值。
(6) 任何一个非空广义表GL均可分解为表头head(GL) = a1和表尾tail(GL) = ( a2,…,an) 两部分。
(7) 广义表的取表尾运算,是非空广义表除去表头元素,剩余元素组成的表。
(8) 广义表是一种递归的数据结构,因此很难为每个广义表分配固定大小的存储空间,所以其存储结构只好采用动态链式结构。
(9) 若一个广义表的表头为空表,则此广义表亦为空表。
4. 在广义表的存储结构中,每个结点均包含3个域。
5. 对矩阵压缩是为了节省存储空间.
6.对于一个非空广义表,可能不含任何原子元素
7.一个广义表的表尾肯定为一个广义表
8.广义表可以是一个多层次的结构
9.数据结构中数据的逻辑结构分为线性结构和非线性结构。
10常用的线性结构有:线性表,栈,队列,双队列,数组,串。
11.常见的非线性结构有:二维数组,多维数组,广义表,树(二叉树等),图。
12.线性结构是一个有序数据元素的集合。关于广义表,是一种非线性的数据结构。
13.多型数据类型是指包含的数据元素的类型并不确定。字符串不是多型数据类型,栈是多型数据类型
二、例题

  1. GetHead( GetTail(((a,b),(c,d))))=(c,d)
    解析:GetTail(((a,b),(c,d))) = ((c,d))
    GetHead( ((c,d)) ) = (c,d)
    PS:Tail((a)) = (a);Head((a)) = a;
    2.设广义表L= ((), ()),则hesd (L)是(); tail (L)是(()); L的长度是2;深度是2。
    3.广义表(a, (a,b) ,d,e,((i,j),k)) 的长度是5,深度是3。
    4.已知广义表LS= ((a,b,c),(d,e,f)),运用head和tail函数取出LS中原子e的运算是Head(Tail(Head(Tail(LS))))。
    解析:Tail(LS)=((d,e,f))
    Head(Tail(LS))=(d,e,f)
    Tail(Head(Tail(LS)))=e,f
    Head(Tail(Head(Tail(LS))))=e

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/333015.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库各种锁详解

文章目录排他锁共享锁更新锁意向锁锁的粒度数据库自动加锁手动加锁各种锁之间的兼容问题排他锁 Exclusive Locks,英译:排他锁,简称 X 锁,又称为写锁或独占锁。排他锁分为表级排他锁和行级排他锁。 如果事务 T1 对数据行对象 A 加…

activiti dmn_新的DMN编辑器预览

activiti dmnWorkbench 7.13.0.Final于10月16日星期二发布,此版本带来了许多有趣的功能和重要的修复程序。 亮点之一是作为技术预览功能的新DMN编辑器,该功能仍在开发中,但您可以开始使用。 在本文中,您将学习如何启用DMN编辑器预…

MySQL的索引存储数据结构BTree和B+Tree的区别

文章目录BTree 原理示意图BTree 原理示意图BTree的树层级很少BTree 可以高效支持范围查找BTree 原理示意图 注:BTree 就是 B-Tree,实际上官方并没有 B-Tree 的说法。 BTree 原理示意图 BTree的树层级很少 BTree 的数据存在每个节点中,所以每…

jdk11 javafx_JDK 11上的JavaFX

jdk11 javafx在JFX第11版发布后,人们对JavaFX与JDK的解耦感到百感交集。 我们许多人认为现在是时候告别JavaFX并改用另一种GUI技术了,而另一些人对此情况感到高兴。 他们认为,将JavaFX与Oracle分离开来,并致力于将其作为开源社区驱…

配置Java环境变量

JAVA环境变量配置 一、新建系统变量 新建变量,找到安装目录新建一个JAVA_HOME,路径为bin目录的前一级目录。 可以安装多个JAVA版本,然后新建不同的JAVA_HOME名称,然后填写bin目录的前一级路径。 二、编辑环境变量 找到path,然后编辑%JAVA…

MySQL的存储引擎InnoDB,B+Tree数据结构索引的实现原理图(聚簇索引/聚集索引)

1.表数据文件本身就是按BTree组织的一个索引结构文件 2.InnoDB的BTree的索引数据结构中,表数据和索引数据合并在一起,即叶子节点包含了完整的数据记录,这样的索引叫聚簇索引。

idea 切换java11_Java 11就在这里,您准备好进行切换了吗?

idea 切换java11在应该将Java 9发行版“震撼我们的世界”一年之后,我们一直在等待的LTS版本终于出现了 我们知道,大多数开发人员,团队,公司等尚未通过Java 8进行更新。 即使去年发布了模块Java 9,随后在3月又发布了Ja…

编译Java源文件

编写 新建hello.java文件 注意类名要和文件名称相同,如果不相同会提示错误 public class hello{public static void main(String[] args) {System.out.println("HelloWorld");} }编译 javac hello.java 编译会生成相应的.class文件。 运行 java hell…

oracle jdk_两个Oracle JDK的故事

oracle jdk最近 ,人们担心 Java开发人员现在会无意中使用错误的Oracle提供的JDK实现(从JDK 11开始 ), Oracle提供了开源OpenJDK的构建 ,并且还主要基于OpenJDK源提供了商业JDK的构建。 下表比较并对比了Oracle提供的两…

安装MAVEN和找不到JAVA_HOME问题原因

一、MAVEN安装 1.将下载好的MAVEN解压 2.配置MAVEN环境变量 MAVEN_HOME3.3.9 配置path 3.配置本地仓库 打开settings.xml进行修改 在MAVEN下新建一个repository文件夹 4.配置阿里MAVEN仓库配置 每次去阿里云下载jar包 <mirror><id>AliMaven</id>&…

数据库中的二级索引_普通索引_辅助索引

普通索引、二级索引、辅助索引是同个东西。 假设有张表的字段为 name&#xff0c;这个字段添加普通索引&#xff08;也叫二级索引&#xff09;&#xff0c;其存储引擎为 InnoDB&#xff0c;那么这个 name 索引的结构图&#xff1a;

2018-12 jdk_JDK 12新闻(2018年9月13日)

2018-12 jdk由于计划于本月晚些时候&#xff08;2018年9月25日&#xff09;发布JDK 11的 一般可用性 &#xff0c;是时候开始更仔细地研究JDK 12了 。 在OpenJDK jdk-dev邮件列表上的标题为“ JDK 12的计划时间表 ”的消息中 &#xff0c; 马克赖因霍尔德 &#xff08; Mark R…

idea连接mysql数据库时连接显示错误caching_sha2_password

问题描述 Connection to paradigmlocalhost failed. Unable to load authentication plugin caching_sha2_password.问题原因 mysql8之前的版本使用的密码加密规则是mysql_native_password&#xff0c;但是在mysql8则是caching_sha2_password&#xff0c;所以需要修改密码加密…

MySQL联合索引原理_复合索引_组合索引_多列索引

文章目录联合索引原理示意图联合索引就是复合索引、组合索引、多列索引。联合索引原理示意图

fluent design_Fluent Design单选按钮,复选框,选择框,Java菜单

fluent design这次我对JMetro进行了重大更新。 3.8版带来了以下新的Fluent Design &#xff08;FDS&#xff09;启发风格&#xff08;深色和浅色&#xff09;和更新&#xff1a; 新的单选按钮样式&#xff1b; 复选框的新样式&#xff1b; 菜单的新样式&#xff1b; 更新了…

MySQL的explain工具介绍

文章目录介绍explain extendedshow waringsexplain partitionsid 字段select_typetypekeypossible_keyskey_lenkey_len 计算规则refrowsextra介绍 使用 explain 可以模拟优化器执行 SQL 语句&#xff0c;会返回 SQL 语句的执行计划信息&#xff0c;但是不会真正去执行这条 SQL…

jetty设置双向ssl_在Jetty中设置SSL

jetty设置双向ssl当您必须快速启用SSL并陷入困境时&#xff0c;您是否遇到了问题&#xff1a;-( 你并不孤单&#xff0c;我将分享我的痛苦和一些学习。 我将分享在码头上启用SSL的步骤。 警告&#xff1a;仅将以下说明用于开发人员设置和生产&#xff0c;请联系您的安全专家…

使用Thumbnailator压缩照片

导入依赖 <dependency><groupId>net.coobird</groupId><artifactId>thumbnailator</artifactId><version>0.4.8</version></dependency>代码 package com.asx.hyd.non.trs;import net.coobird.thumbnailator.Thumbnails;impo…

MySQL的索引优化

文章目录全值匹配最左前缀原则不在索引列上使用函数&#xff0c;会导致索引失效而转向使用全表扫描范围条件右边的索引列会失效尽量使用覆盖索引使用不等于操作符无法使用索引is null&#xff0c;is not null 一般情况下也无法使用索引like 以通配符开头的&#xff0c;索引会失…

cuba 平台_认识CLI for CUBA平台

cuba 平台毫无疑问&#xff0c;软件开发人员&#xff08;尤其是Java开发人员&#xff09;的世界充满了键盘狂热者&#xff0c;最好通过单击一下鼠标键入10-15个字母。 而且我们的社区也不例外&#xff0c;因此我们经常被问到“如何在没有CUBA Studio的情况下启动项目&#xff1…