前面讲过,数组即可以存储不可再分的数据元素(如数字 5、字符 'a'),也可以继续存储数组(即 n 维数组)。

但需要注意的是,以上两种数据存储形式绝不会出现在同一个数组中。例如,我们可以创建一个整形数组去存储 {1,2,3},我们也可以创建一个二维整形数组去存储 {{1,2,3},{4,5,6}},但数组不适合用来存储类似 {1,{1,2,3}} 这样的数据。

有人可能会说,创建一个二维数组来存储{1,{1,2,3}}。在存储上确实可以实现,但无疑会造成存储空间的浪费。

对于存储 {1,{1,2,3}} 这样的数据,更适合用广义表结构来存储。

什么是广义表

广义表,又称列表,也是一种线性存储结构。

同数组类似,广义表中既可以存储不可再分的元素,也可以存储广义表,记作:

LS = (a1,a2,…,an)

其中,LS 代表广义表的名称,an 表示广义表存储的数据。广义表中每个 ai 既可以代表单个元素,也可以代表另一个广义表。

原子和子表

通常,广义表中存储的单个元素称为 "原子",而存储的广义表称为 "子表"。

例如创建一个广义表 LS = {1,{1,2,3}},我们可以这样解释此广义表的构成:广义表 LS

什么是广义表、广义表及定义详解相关推荐

  1. Java中常见RuntimeException与其他异常表及Exception逻辑关系详解

    Java中常见RuntimeException与其他异常表及Exception逻辑关系详解 前言 常见`RuntimeException` 其他错误类型 `Error`类 `Exception`类 E ...

  2. 关系型数据库表之间的联系[关系]详解

    关系型数据库表之间的联系[关系]详解 在表中,行和列的逻辑顺序无关紧要.每个表至少包含一列,该列被称为主键,它唯一地标识了表中的每一行. 键是表中扮演特殊角色的列,有两种键:主键.外键. 主键(Pri ...

  3. Oracle创建表语句(Create table)语法详解及示例

    Oracle创建表语句(Create table)语法详解及示例   创建表(Create table)语法详解 1. ORACLE常用的字段类型ORACLE常用的字段类型有 VARCHAR2 (si ...

  4. layui单选框verify_layui lay-verify form表单自定义验证规则详解

    虽然layui的官方文档已经是写的比较详细,但是初次使用的时候总会懵一下,这里纪录一下lay-verify自定义验证规则的时候到底放哪. html: 提交 js: form.verify({ //数组 ...

  5. php表单提交到数据库详解

    一般朋友们逛一些网站的时候,想使用网站或者看到更多网站里的内容,网站会要求用户进行新用户的注册,网站会把新用户的注册信息存入数据库中,需要的时候再进行提取. 这样网站就会首先创建自己的数据库和对应的表 ...

  6. oracle 误删除表数据,Oracle误删除表数据后的数据恢复详解

    Oracle误删除表数据后的恢复详解 测试环境: SYSTEM:IBM AIX 5L                         Oracle Version:10gR2 1. undo_rete ...

  7. oracle表稅片整理,oracle_Oracle表碎片整理操作步骤详解,高水位线(HWL)下的许多数据 - phpStudy...

    Oracle表碎片整理操作步骤详解 高水位线(HWL)下的许多数据块都是无数据的,但全表扫描的时候要扫描到高水位线的数据块,也就是说oracle要做许多的无用功!因此oracle提供了shrink s ...

  8. 转 C++宏定义详解

    来自:传送门 C++宏定义详解 一.#define的基本用法 #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往 ...

  9. openerp经典收藏 对象定义详解(转载)

    对象定义详解 原文地址: http://shine-it.net/index.php/topic,2159.0.html http://blog.sina.com.cn/s/blog_57ded94e ...

  10. C++中的宏定义详解

    转载自:C++中的宏定义 和 C++宏定义详解 目录 一.#define解析 1 #define命令剖析 1.1   #define的概念 1.2 宏替换发生的时机 1.3 ANSI标准说明了五个预定 ...

最新文章

  1. usb linux 内核,Linux下USB内核之学习笔记
  2. 基于window-based模板的多View程序(转)
  3. HDU 1232畅通工程
  4. java string 数据结构_数据结构---Java---String、StringBuilder、StringBuffer
  5. Windows下的包管理工具scoop
  6. WebService的简单实现
  7. Linux进程间通信——消息队列
  8. springboot2 oauth2 jwt认证服务器和资源服务器
  9. Angel 相关学习
  10. Python人工智能之图片识别,Python3一行代码实现图片文字识别
  11. ctf php沙箱,详谈CTF中常出现的PHP反序列化漏洞
  12. html 图片展示 3d,利用CSS3制作简单的3d半透明立方体图片展示
  13. archlinux安装kde常见的问题(无法登录,黑屏,无法调节亮度等)
  14. Keil5.15使用GCC编译器编译STM32工程
  15. 存量之争:国美零售以全零售探索破局之道
  16. R语言ggplot2可视化:使用patchwork包将两个ggplot2可视化结果组合起来、使用labs函数为第两个子图都添加标题信息(subtitle for each subplots)
  17. Codeforces1428 E. Carrots for Rabbits(贪心+堆)
  18. 开发板ARM加FPGA架构运动控制卡 运动控制器 架构源码 原理图 资料包含此运动控制卡原理图,PCB图
  19. java做RPG小游戏
  20. docker搭建WordPress

热门文章

  1. ffmpeg录屏命令
  2. 部门来了个测试开发,听说是00后,上来一顿操作给我看呆了...
  3. 原神私服搭建二: 搭建服务端
  4. Linux内核读文件处理过程浅析
  5. macs14_iPhone和iPad应用程序将能够在基于ARM的Macs上本地运行
  6. gif透明背景动画_BMP、GIF、TIFF、PNG、JPG和SVG格式图像的特点
  7. 罗素说过:“我是不会为自己的信念去死的,因为我不能肯定自己的信念是对的。”
  8. 74ls20设计半加器_模拟数字电子技术实验指导及实验室规划方案,上海求育
  9. Spark+Hadoop环境搭建
  10. 【微信小程序提取公共请求数据】