广义表基础知识

news2024/11/22 6:53:13

广义表 (又称列表 Lists)是 n >= 0个元素 . a0,a1....an-1的有限序列,其中每一个 ai 或者是原子,或者是一个广义表

广义表通常记作: LS = (a1,a2,.....,an), LS为表名,n为表的长度,每一个 ai 为表的元素,一般用大写字母表示广义表小写字母表示原子

表头: 若 LS非空(n>=1),则其第一个元素 就是表头,表头可以是原子,也可以是子表记作 , head(LS)= a1

表尾:除表头之外的其它元奏组成的表 记作 tail(LS =(a2...., an)。表尾不是最后一个元素,而是一个子表

案例

广义表的性质

(1)广义表中的数据元素有相对次序,一个直接前驱和一个直接后继

(2)广义表的长度定义为最外层所包含元素的个数。如:C=(a (b)) 是长度为2的广义表

(3)广义表的深度定义为该广义表展开后所含括号的重数 A=(b,c) 的深度为1,B=(A,d) 的深度为 2,C=(f,B,h)的深度为3

注意:“原子”的深度为 0;“空表”的深度为 1。

(4)广义表可以为其他广义表共享; 如: 广义表 B就共享表A。在B中不必列出A的值,而是通过名称来引用,B= (A)

(5) 广义表可以是一个递归的表。如: F(a,F)= (a(a,(a ...)))

注意: 递归表的深度是无穷值,长度是有限值。

(6)广义表是多层次结构,广义表的元素可以是单元素,也可以是子表,而子表的元素还可以是子表,可以用图形象地表示

例: D=(E,F),其中: E=(a(b,c)),F=(d(e))

广义表和线性表的区别?

广义表可以看成是线性表的推广,线性表是广义表的特例

广义表的结构相当良活,在某种前提下,它可以兼容线性表、数组树和有向图等各种常用的数据结构。

当二维数组的每行(或每列) 作为子表处理时,二维数组即为一个广义表。

另外,树和有向图也可以用广义表来表示

由于广义表不仅集中了线性表、数组、树和有向图等常见数据结构的特点

而且可有效地利用存储空间,因此在计算机的许多应用领域都有成功使用广义表的实例。

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

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

相关文章

使用 LoRA 和 QLoRA 对大型语言模型进行参数高效的微调

概述 随着我们深入研究参数高效微调 (PEFT) 的世界,了解这种变革性方法背后的驱动力和方法变得至关重要。在本文中,我们将探讨 PEFT 方法如何优化大型语言模型 (LLM) 对特定任务的适应。我们将揭开 PEFT 的优点和缺点,深入研究 PEFT 技术的复杂类别,并破译两种卓越技术的内…

SpingMyc项目如何搭建

目录 一、创建项目 二、环境搭建 (1)引入相关依赖 (2)在web.xml中配置前端控制器DispatcherServlet (3)编写SpringMVC核心配置文件springmvc.xml 三、测试是否成功 (1)编写控…

Java反射机制简单入门

标题 反射能干嘛获取Class对象的三种方式下面开始重点,需要掌握获取类的构造器并进行操作获取成员变量获取成员方法 这块建议先听第一个视频入门,第二个视频深入了解 视频学习地址1 视频学习地址1 正射:知道某个类,类的地址,通过…

在Linux和Windows上安装分布式事务seata

1 前言 官网地址:https://seata.io/ 源码地址:https://github.com/seata/seata 官网手册:https://seata.io/zh-cn/docs/ops/deploy-guide-beginner.html Seata,一款开源的分布式事务解决方案,致力于提供高性能和简…

软件设计模式系列之五——建造者模式

1 模式的定义 建造者模式是一种对象创建型设计模式,它将一个复杂对象的构建过程与其表示分离。这意味着你可以使用相同的构建过程来创建不同类型的对象,而不必关心每个对象的内部细节。这种模式适用于构建具有复杂配置的对象,例如具有多个可…

查看selenium具体版本的方法

1、 查看自己selenium版本 方法一: 本机进入CMD 在cmd窗口中输入 pip show selenium如果是在Pycharm中直接安装的selenium。则有可能会有如下提示。那么请尝试方法二。 方法二: 在pycharm中查看selenium版本 步骤一:在pycharm里打开命…

SpringMVC系列(五)之JSR303和拦截器

目录 一. JSR303 1.1 JSR303是什么 1.2 为什么要使用JSR303 1.3 JSR303常用注解 1.4 JSR303快速入门 1. 导入相关pom依赖 2. 配置校验规则 3. 入门示例 二. SpringMVC的拦截器 2.1 什么是拦截器 2.2 拦截器与过滤器的区别 2.3 拦截器工作原理 2.4 入门示例 1. 创建…

Gin路由中间件详解

什么是中间件 Gin 中的中间件必须是一个 gin.HandlerFunc 类型,配置路由的时候可以传递多个 func 回调函 数, 最后一个 func 回调函数前面触发的方法 都可以称为中间件。 中间件操作演示 方法一: 直接写在func,回调函数内 r.GET("/middle",func(ctx *gin.Cont…

Pytorch中张量矩阵乘法函数(mm, bmm, matmul)使用说明,含高维张量实例及运行结果

Pytorch中张量矩阵乘法函数使用说明 1 torch.mm() 函数1.1 torch.mm() 函数定义及参数1.2 torch.bmm() 官方示例 2 torch.bmm() 函数2.1 torch.bmm() 函数定义及参数2.2 torch.bmm() 官方示例 3 torch.matmul() 函数3.1 torch.matmul() 函数定义及参数3.2 torch.matmul() 规则约…

黑马头条 热点文章实时计算、kafkaStream

热点文章-实时计算 1 今日内容 1.1 定时计算与实时计算 1.2 今日内容 kafkaStream 什么是流式计算kafkaStream概述kafkaStream入门案例Springboot集成kafkaStream 实时计算 用户行为发送消息kafkaStream聚合处理消息更新文章行为数量替换热点文章数据 2 实时流式计算 2…

【C++】哈希思想的应用——位图、布隆过滤器和哈希切割

前言: 前面我们学习了unordered_map和unordered_set和哈希表哈希桶等,并且我们自己用哈希桶封装了unordered_map和unordered_set。我们知道哈希的查找效率非常高为O(1),本章我们将延续哈希的思想,共同学习哈希的应用。 目录 &am…

sh脚本工具集锦(文件批量操作、音视频相关)持续更新

1 文件夹目录下所有图片转换成视频文件 pic_2_videos.sh: #!/bin/bash # 放到图片文件夹目录下,把所有jpeg图片推成视频文件 # sh pic_2_videos.sh 0 # 0: pad to 1920*1080 ; 1 or other no pad pad_1920$1if [[ $pad_1920 0 ]] thenfilesls|grep jp…

【Flink】 FlinkCDC读取Mysql( DataStream 方式)(带完整源码,直接可使用)

简介: FlinkCDC读取Mysql数据源,程序中使用了自定义反序列化器,完整的Flink结构,开箱即用。 本工程提供 1、项目源码及详细注释,简单修改即可用在实际生产代码 2、成功编译截图 3、自己编译过程中可能出现的问题 4、mysql建表语句及测试数据 5、修复FlinkCDC读取Mys…

【C++】匿名对象 ① ( 匿名对象引入 | 匿名对象简介 | 匿名对象概念 | 匿名对象作用域 - 对象创建与销毁 )

文章目录 一、匿名对象引入二、匿名对象简介1、匿名对象概念2、匿名对象作用域 - 对象创建与销毁3、代码示例 - 创建并使用匿名对象 一、匿名对象引入 匿名对象引入 : 在上一篇博客 【C】拷贝构造函数调用时机 ② ( 对象值作为函数参数 | 对象值作为函数返回值 ) 中 , 讲到了 如…

【Java基础】- RMI原理和使用详解

【Java基础】- RMI原理和使用详解 文章目录 【Java基础】- RMI原理和使用详解一、什么RMI二、RMI原理2.1 工作原理图2.2 工作原理 三、RMI远程调用步骤3.1 RMI远程调用运行流程图3.2 RMI 远程调用步骤 四、JAVA RMI简单实现4.1 如何实现一个RMI程序4.2 JAVA实现RMI程序 一、什么…

小程序中如何查看指定会员的所有订单?

在小程序中,查看指定会员的所有订单可以通过如下方式实现。 1. 找到指定的会员卡。在管理员后台->会员管理处,找到需要查看订单记录的会员卡。也支持对会员卡按卡号、手机号和等级进行搜索。 2. 查看会员卡详情。点击查看详情进入该会员卡的详情页面…

GTS 中testPersistentProcessMemory fail 详解

0. 前言 GTS 在测试 case armeabi-v7a GtsMemoryTestCases 的时候出现下面异常,本文总结一下。 com.google.android.memory.gts.MemoryTest#testPersistentProcessMemory 1. error log 09-14 09:41:40.523 10182 13340 13359 E TestRunner: failed: testPersiste…

网攻西北工业大学的美国安局人员真实身份锁定!

14日,《环球时报》从国家计算机病毒应急处理中心和360获悉,在侦办西北工业大学网络攻击案过程中,我方成功提取了名为“二次约会”(Second Date)“间谍”软件的多个样本。在多国业内伙伴通力合作下,现已成功…

【ELK】日志分析系统概述及部署

目录 一、ELK概述 1、ELK是什么? 2、ELK的组成部分 2.1 ElasticSearch (1)分片和副本 (2)es和传统数据库的区别 2.2 Kiabana 2.3 Logstash (1)Log Stash主要组件 2.4 可添加的其它组件 …

Opencv之区域生长和分裂

区域生长 1.基本原理 区域生长法是较为基础的一种区域分割方法 它的基本思想我说的通俗些,即是一开始有一个生长点(可以一个像素也可以是一个小区域),从这个生长点开始往外扩充,扩充的意思就是它会把跟自己有相似特征…