首页 > 其他分享 >广义表的原理(没有代码实现)

广义表的原理(没有代码实现)

时间:2023-10-27 21:34:13浏览次数:36  
标签:线性表 代码 节点 link 广义 原理 原子 slink

广义表是线性表的推广,又称列表。线性表的元素只限于原子项,即每个数据元素只能是一个数或一个记录,如果放松对线性表元素的这种限制,允许他们自身具有结构,那么就产生了广义表。
广义表是一种多层次的线性结构,像是一颗倒扣的树,实际上,这也算是一种树形结构。广义表不仅是线性表的推广,也算是树结构的推广。

广义表的存储结构
广义表的元素本身可以具有结构,这是一种带有层次性的线性结构。这里我们定义了三个域。一个为tag标志位,指示了当前元素是原子还是子表。广义表规定了当tag为0时,当前原子项为原子(data),当tag为1时,当前原子项指向下一个原子子表的地址。(slink),即当广义表中的某个节点出现了data时,不可能出现节点slink。这个我们可以通过union联合体来实现。
另一个节点是link。link指向了同一层次的下一个元素的地址。类似于链表中得到next,link把每一个节点都窜通在了一起,不同于slink的是,link指向下一个节点,slink指向子表,当slink存在是,link一定为NULL。

广义表理论存储形式直观表述

 

标签:线性表,代码,节点,link,广义,原理,原子,slink
From: https://www.cnblogs.com/saucerdish/p/17793079.html

相关文章

  • 中华人民共和国行政区划代码(县市县镇村街道办)
    这里提供一个含县以下的行政区划。现在网上的到处都要收钱。现在真的是爱国也要收费了!链接:https://pan.baidu.com/s/1258j5S6Rst_GGy43qJOusQ?pwd=3304提取码:3304 ......
  • Java基础 同步代码块
    同步代码块:利用同步代码块把操作共享数据的代码给锁起来,让同步代码块里面的代码是轮流去执行的 格式:synchronized(锁对象){   操作共享数据的代码} 细节:1.在最初,锁的状态是默认打开的,如果有一个线程进去了,锁就会自动关闭2.当锁里面全部代码都执行完毕了,线程......
  • 使用vscode 用git 拉取代码,提示:在签出前,请清理存储库工作树
    使用vscode用git拉取代码,提示:在签出前,请清理存储库工作树如图:问题:git仓库上的代码和本地代码存在冲突了所以会报这个报错。解决办法:手动解决①gitstash先将本地修改存储起来②gitpull拉取远程③gitstashpop还原暂存内容放弃本地修改,直接覆盖①gitreset--hard②g......
  • php代码审计学习----骑士cms代码审计
    php代码审计学习----骑士cms代码审计源码下载https://github.com/Betsy0/CMSVulSource环境搭建删掉data里的install.lock然后把源码放在phpstudy的网站目录下访问http://xxx/74cms/install.php使用phpstorm调试使用seay进行辅助代码审计(主要phpstorm不知为什么总是无法......
  • guava 缓存刷新 代码记录 刷新缓存,未完成代码
    privatestaticAtomicBooleanrefreshCaching=newAtomicBoolean(false);privatestaticLoadingCache<String,String>cache1=CacheBuilder.newBuilder().maximumSize(1000).expireAfterWrite(10,TimeUnit.MINUTES)......
  • 行行AI公开课:飞书无代码平台AI技术负责人邓范鑫——从第一性原理看大模型Agent技术
    当我们进入智能时代,开始思考:什么将会成为这个时代的核心载体?是App?是网站?还是Agent?也许几年后的现实才能给出答案,但历史告诉我们一个新鲜事物的演进总会找到一个稳定的术语来概括这个载体,而今天我们看到Agent最具有这个潜力。几个月前,OpenAI在内部就开始高度关注智能体(Agent)领......
  • 五款最热低代码平台推荐!
    一、什么是低代码平台?首先,什么是低代码平台?低代码平台是通过少量代码或无需编码就可以快速实现应用程序的开发平台。它为编程提供图形用户界面,从而以极快的速度开发代码,减少传统编程工作。低代码平台有助于快速开发代码,最大限度地减少手工编码的工作量。这些平台不仅有助于编码,......
  • Django和Vue.js是两种不同的框架,它们各自有自己的特点和用途¹。 **Django**¹: - Dja
    Django和Vue.js是两种不同的框架,它们各自有自己的特点和用途¹。**Django**¹:-Django是一个开放源代码的PythonWeb应用框架¹。-它采用了MTV(模型,视图,模板)的软件设计模式¹。-Django可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序¹。-Django还包含许多功能......
  • 第四章苏格拉底问答、实践过程截图、遇到问题解决问题截图,代码链接
    代码#include<stdio.h>#include<stdlib.h>#include<pthread.h>#defineN4intA[N][N],sum[N];void*func(voidarg){intj,row;pthread_ttid=pthread_self();row=(int)arg;printf("Thread%d[%lu]computessumofrow%d\n"......
  • 易语言银行电子回执单生成器,转账对公都可以,程序集代码分享
    今天闲着没事用易语言的画板设计了一个回执单生成器,程序我就不分享了,然后源码我会分享代这里,仅供娱乐哈,装逼用的,用到的工具还是用易语言,毕竟我易语言学了10多年,需要的组件是:画板,编辑框,普通按钮,标签,主要就这些,下面看下我设计的UI界面。UI设计好的截图: 程序集源码分享:【你可以一......