数据结构(超详细讲解!!)第二十二节 广义表

1.定义

广义表,顾名思义,也是线性表的一种推广。广义表被广泛地应用于人工智能等领域的表处理语言LISP语言中。在LISP语言中,广义表是一种最基本的数据结构,就连LISP 语言的程序也表示为一系列的广义表。

广义表又称列表,是n ( n 大于等于 0 ) 个元素的有限序列,记作A = ( a1, a2, …, an )。其中A是列表的名字,n是它的长度,ai可以是数据元素,也可以是列表。如果ai是列表,则称其为列表A的子表。

习惯上,用大写字母表示列表的名称,用小写字母表示数据元素。用圆括号把列表的元素括起来,用逗号分隔开列表中的元素。

在广义表GL=(d1, d2,d3,…,dn)中,d1是广义表GL的表头,而广义表GL其余部分组成的表(d2,d3,…,dn)称为广义表的表尾。由此可见广义表的定义是递归定义的,因为在定义广义表时又使用了广义表的概念。

广义表是递归定义的线性结构, GL=(d1, d2,d3,…,dn) 其中:di  或为原子或为广义表

广义表是一个多层次的线性结构

列表的深度 :列表展开后的最大括号层次数。

L = (a, b, c)    列表L长度为3,深度为1

E = ( )            E为空表,长度为0,深度为1

A = (x, L, z)   列表A的长度为3,深度为2

B = (A, y, E)  列表B的长度为3,深度为3

C = (A, B)     列表C的长度为2,深度为4

D = (z, D)      列表D的长度为2,深度为无穷大

列表是非终端结点(即交叉结点),数据元素是终端结点,空表作为一个特殊的终端结点。

纯表:通常把与树对应的列表称为纯表,它限制了表中成分的共享性和递归。例如列表L、A、B。

具有共享和递归特性的列表可以和有向图建立对应。

广义表 GL=(d1, d2,d3,…,dn)的结构特点:

1)  广义表中的数据元素有相对次序;

2)  广义表的长度定义为最外层包含元素个数;

3)  广义表的深度定义为所含括弧的重数;    

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

4)  广义表可以共享;

5)  广义表可以是一个递归的表。      

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

6)任何一个非空广义表 GL=(d1, d2,d3,…,dn)    均可分解为            

表头  Head(GL) = d1   和   表尾  Tail(GL) = ( d2, …, dn) 两部分。

任何一个非空广义表的表头是表中第一个元素,可以是数据元素,也可以是子表,而其表尾一定是子表。

L = (a, b, c)       E = ( )     A = (x, L, z)      B = (A, y, E)     C = (A, B)      D = (z, D)

head(L) = a,  tail(L) = (b, c)

head(B) = A, tail(B) = (y, E)

head(tail(L)) = head(b, c) = b

tail(tail(tail(L))) = tail(tail(b, c)) = tail(c) = ( )

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

11.(vue3.x+vite)组件间通信方式之ref与$parent、$children

前端技术社区总目录(订阅之前请先查看该博客) 示例效果 注: (1)ref 加在标签(div等)上,是拿到dom 对象 (2)ref加上组件上,拿到的是组件的引用 (3)让父组件获取子组件的数据或者方法需要通过defineExpose对外暴露,另外让父组件获取子组件的数据或者方法需要通过d…

NIO 笔记(一)基础内容

【笔记来自:it白马】 NIO基础 **注意:**推荐完成JavaSE篇、JavaWeb篇的学习再开启这一部分的学习,如果在这之前完成了JVM篇,那么看起来就会比较轻松了。 在JavaSE的学习中,我们了解了如何使用IO进行数据传输&#xf…

C语言每日一题(27)链表中倒数第k个结点

牛客网 链表中倒数第k个结点 题目描述 描述 输入一个链表,输出该链表中倒数第k个结点。 思路分析 这是一道经典的快慢指针题,fast和slow最开始都指向头结点,对于输入值k,先让快指针fast先走k步,之后再让两个指针一…

ABAP Json和对象的转换

se24新建类ZCL_JSON保存 点击修改,进入下图界面,点击红框。 复制粘贴下面代码 CLASS zcl_json DEFINITIONPUBLICCREATE PUBLIC .PUBLIC SECTION. *"* public components of class ZCL_JSON *"* do not include other source files here!!!TYP…

某银行软件测试笔试题,满分一百你能得多少分?

(时间90分钟,满分100分) 考试要求:计算机相关专业试题 一、填空题(每空1分,共10分) 1. ______验证___是保证软件正确实现特定功能的一系列活动和过程。 2. 按开发阶段分,软件测试可…

超全总结!大模型算法面试指南(含答案)

大家好,从 2019 年的谷歌 T5 到 OpenAI GPT 系列,参数量爆炸的大模型不断涌现。可以说,LLMs 的研究在学界和业界都得到了很大的推进,尤其去年 11 月底对话大模型 ChatGPT 的出现更是引起了社会各界的广泛关注。 近些年&#xff0…

简述扫码登录原理及测试要点

扫码登录本质是解决将APP端的用户登录信息(通常是Token)通过扫码的形式安全稳定地同步给Web端。 操作流程: 打开登录页面,展示一个二维码(web);打开APP扫描该二维码后,APP显示确认、取消按钮(app)&#xf…

上市公司-赫芬达尔指数(2000-2022年)(数据+2种结果)

上市公司-赫芬达尔指数(HHI)可衡量一个公司在市场中的相对份额或集中度。它是由每家公司在市场中份额的平方和得到的。指数值越高,表示该市场或行业的集中度越高,竞争可能相对较小;而指数值越低,则意味着该…

uni-app学习笔记(二)

目录 一、路由与页面跳转 1、tabar与普通页面跳转例子 2、navigateTo 3、switchTab 二、vue组件 1、传统vue组件的使用 2、easycom 三、uView组件库 1、安装配置 2、引入配置 3、使用 四、Vuex 1、认识 2、state基本使用 3、mapState使用 五、网络请求 1、封装…

Maven简介

一、Maven模型 二、模型实现 三、对应代码项目介绍

JAVA开源项目 于道前端项目 启动步骤参考

1. 安装 启动过程有9个步骤: 1.1 安装 Node JS , V18版本的 (安装步骤省略) 1.2 安装 npm install -g yarn ,node JS里边好像自带npm ,通过npm的命令安装 yarn 1.3 切换到项目中去安装,npm install &a…

Android Glide transform旋转rotate圆图CircleCrop,Kotlin

Android Glide transform旋转rotate圆图CircleCrop,Kotlin import android.graphics.Bitmap import android.os.Bundle import android.util.Log import android.widget.ImageView import androidx.appcompat.app.AppCompatActivity import com.bumptech.glide.load…

[第二章—Spring MVC的高级技术] 2.2 置multipart解析器

使用Servlet 3.0解析multipart请求 兼容Servlet 3.0的StandardServletMultipartResolver没有构 造器参数,也没有要设置的属性。 这样,在Spring应用上下文中,将 其声明为bean就会非常简单,如下所示: ● 既然这个Bean方…

将Modbus转Profinet网关用于自动给料机的案例

自动给料机通过使用Modbus转Profinet网关(XD-MDPN100)连接1200PLC与G120变频器Modbus通信。这种通信方式可以实现设备之间的数据交换和控制命令传输,大大提高了自动给料机的运行效率和精度。使用这个网关,1200PLC可以准确地将控制…

基于pytorch使用特征图输出进行特征图可视化

使用特征图输出进行特征图可视化 文章目录 前言效果展示获取某一层特征图输出原图方法一:使用IntermediateLayerGetter类方法二:使用hook机制(推荐) 总结 前言 提示:这里可以添加本文要记录的大概内容: 例…

Linux进程控制(2)

Linux进程控制(2) 📟作者主页:慢热的陕西人 🌴专栏链接:Linux 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 本博客主要内容讲解了进程等待收尾内容和进程的程序…

爱家房产网站源码 爱家房产网商业版 微信互动营销整合+手机触屏版+经纪人分销

房产网站源码手机访问自动转手机版修改修复如下: 1,修复手机版首页标题头部名称 2,修复手机版首页频道导航按钮 3,新增手机版广告位置显示方式 4,修复手机版首页内容显示样式 5,手机版头部背景颜色ic…

【Java】在实体类中常用的注解校验

1、常用注解: 注解说明Null只能为nullNotNull(message “id不能为空”)必须不为null,可以为空字符串Min(value)必须为一个不小于指定值的数字Max(value)必须为一个不大于指定值的数字NotBlank(message “姓名不能为空”)验证注解的元素值不为空&#…

【Mysql】模糊查询

目录 表: like用法 1.查询姓孙的王者荣耀英雄 ​编辑 2.查询姓孙,且名后面只有一个字的王者荣耀英雄 3.查询姓孙,且名后面有两个字的王者荣耀英雄 4.查询名字带 亮 的王者荣耀英雄 ​编辑 where...in...用法 1.查询id 为1&#x…

坐标系转换(仅作记载)

一.极坐标转换为普通坐标系 参考:极坐标方程与直角坐标方程的互化 - 知乎 (zhihu.com) 公式:(无需考虑象限引起的正负问题) 普通坐标系转换为极坐标系 参考: 极坐标怎么与直角坐标系相互转化? - 知乎 (zh…