C语言数据结构中,广义表和数组一样,也是线性表的一种推广!

广义表的定义:
广义表 LS 为n(n≥0)个元素的有穷序列,记作:
LS = (d1, d2, … dn)
其中:
di:或为原子项(为具体数值,用小写字母表示);或为子广义表(简称子表,用大写字母表示)。
n:为广义表的长度;当n等于0时,广义表LS为空表。
当LS不为空时,即(n≥1时),称d1为表头(head)剩余所有元素构成的子表(d2, d3, …dn)称为表尾(tail)

广义表的基本操作:
1.计算表头函数head(LS),定义如下:

2.计算表尾函数tail (LS),定义如下:

3.计算表深度函数depth (LS),定义如下:

结合实例理解:

广义表的存储结构:
广义表LS = (d1, d2, …,dn)中的数据元素di或是原子,或是子广义表,具有不同的结构,很难用顺序存储结构表示,通常采用链式存储结构来表示。

链式存储结构主要有两种方法:

1.头、尾链表存储结构;
策略:根据广义表的head和tail操作定义对数据元素进行分割和存储组织。
tag=1表示表结点;tag=0表示原子结点;在表结点中包含两个指针域,分别为hp(指示表头)和tp(指示表尾)。

头尾链表存储的特征:

头尾链表存储结构的实例:

2.扩展线性链表存储结构。
策略:对链表结构进行扩展,元素结点除支持存储原子数据外,可对子广义表进行组织管理。

扩展线性链表存储结构的特征:

扩展线性链表存储结构的实例:

总结:
广义表的特点:
1.为递归结构;
2.数据元素宏观为线性关系。
广义表的存储方案:
1.有两种存储方案:头尾链表存储结构和扩展线性链表存储结构;
2…可表达广义表的递归结构,并体现数据元素直接的关系;
3.存储方案并不唯一。

C语言数据结构——广义表相关推荐

  1. 数据结构-广义表详解(类C语言版)

    目录 广义表的概念 定义 表头 表尾 例 广义表的性质 广义表与线性表的区别 广义表的存储结构 头尾链表的存储结构 扩展线性链表的存储结构 ​ 广义表的基本运算 例 广义表的概念 定义 广义表通常记作 ...

  2. 数据结构(C语言)-广义表

    广义表 一.广义表的定义和运算 1.广义表的定义 2.广义表的性质 二.广义表的存储 1.头尾表示法 2.孩子兄弟表示法 广义表是线性表的推广,也称为列表(Lists).线性表中的元素仅限于单个数据元 ...

  3. 不同表结构数据迁移_C语言:数据结构-广义表的存储结构

    广义表相对于线性表﹑数组﹑串等线性结构是较为复杂的结构,其元素可以具有不同的结构(可以是原子,也可以是列表),通常采用链式结构存储广义表. (1)表头.表尾链式存储 链式结构中用结点储存列表中的数据元 ...

  4. 广义表的长度和深度怎么算_C语言:数据结构-广义表的定义和图形表示

    广义表又称为列表,是线性表的推广.一般记为:LS=(a1,a2, - ,an)其中LS是广义表(a1,a2, - ,an)的名称,ai(i=1,2,-,n)是表的元素.与线性表的区别是:其中的ai可以 ...

  5. 数据结构 —— 广义表

    什么是广义表 广义表是一种非线性的数据结构,它的表元素可以是原子或者广义表的一种线性表的扩展结构. 广义表的长度:为表中最上层元素的个数 广义表的深度:为表中括号的最大层数 表头和表尾:当广义表非空时 ...

  6. C语言数据结构顺序表的顺序查找和折半查找的功能

    C语言顺序表顺序查找和折半查找的基本思想和应用 顺序查找算法:又称为线性查找,主要用在-线性表-中进行查找 通常分为:1-无序线性表的一般查找: 2-对关键字有序的顺序表查找: 优缺点分析: 缺点:当 ...

  7. C#数据结构-广义表和递归

    广义表是线性表的推广.定义是:一个广义表是n个元素的一个有限序列.差不多就是线性表元素里面还有线性表,这个表里面的元素称为原子,如果这个原子也是线性表称之为子表.表示为:GL=(a1,a2,a3... ...

  8. 广义表取表头表尾_数据结构广义表的递归算法

    Hello同学们,又到了美妙的星期三,很开心又和大家见面了.这次我们要来讲一讲关于广义表的那些事儿! 俗语说:"与其临渊羡鱼,不如退而结网." 希望通过今天的学习大家可以有所收获. ...

  9. c语言数据结构线性表LA和LB,数据结构(C语言版)设有线性表LA(3,5,8,110)和LB(2,6,8,9,11,15,20)求新集合?...

    数据结构(C语言版)设有线性表LA(3,5,8,110)和LB(2,6,8,9,11,15,20)求新集合? 数据结构(C语言版)设有线性表LA(3,5,8,110)和LB(2,6,8,9,11,15 ...

最新文章

  1. python大数据分析实例-python大数据分析代码案例
  2. 抓取豆瓣上的《长津湖》的热评,我发现了这些
  3. 初学Java Web(2)——搭建Java Web开发环境
  4. struts2 中文件的位置问题
  5. LeetCode 973. 最接近原点的 K 个点(排序/优先队列/快排)
  6. 2021年11月国产数据库排行榜:openGauss闯入前三,Kingbase流行度与日俱增,TDengine厚积薄发
  7. python写脚本的优势_python写脚本的优势玩被叫
  8. 估计理论(7):应用BLUE的两个例子
  9. 兆骑科创创新创业赛事活动承办,科创企业,企业孵化器
  10. cmd下载的python包,pycharm中却无法使用(由于虚拟环境)
  11. Filter中获取传递参数(解决post请求参数问题)
  12. 【作业】【2.3标识符及其命名】
  13. 巨杉TechDay回顾 | 技术人的夏天 · 就是这么燃!
  14. 关于meta标签中的http-equiv属性使用介绍
  15. vivo双卡流量切换流程
  16. java项目类型---java新手
  17. uniapp从开发App到上架应用市场需要经历什么?
  18. Galaxy S4 GT-I9500如何root 安卓5.0.1
  19. LeetCode56. 合并区间(Java贪心解法)
  20. 运营商大数据获客的优势

热门文章

  1. python 中文字符转换
  2. 解决thinphp里返回json时斜杆和中文被转义问题
  3. ResourceUtils
  4. 关于孟岩一篇文章的讨论
  5. BLE广播包4种类型
  6. 黑苹果 wifi android,黑苹果目前已可以完美驱动内置intel WiFi
  7. Android折腾记——Linux on Android在Android手机上跑Linux教程
  8. c语言floor函数_floor()函数以及C ++中的示例
  9. 云效部署应用失败问题排查
  10. MATLAB中的乘除法 “ * ” 和 “ .* ” and “ / ” 和 “ ./ ”