文章目录

  • 一、头尾链表的存储结构
    • 1、表头和表尾
    • 2、表结点和原子结点
  • 二、扩展线性链表的存储结构

一、头尾链表的存储结构

由于广义表的数据元素可以分为原子和广义表,由此需要两种结构的结点,一种是表结点(广义表),一种是原子结点(原子)。

非空广义表可以分解为表头和表尾。

1、表头和表尾

表头:非空广义表的第一个元素,可以是一个单原子,也可以是一个子表
表尾:去除表头之外其余元素构成的,表尾一定是一个广义表

2、表结点和原子结点

表结点:标志域、指示表头的指针域、指示表尾的指针域
原子结点:标志域和值域
标志域(tag):值为1时表明结点是子表,值为0时表明结点是原子

//ATOM=0表示原子,LIST=1表示子表
typedef enum{ATOM,LIST} ElemTag;
typedef struct GLNode
{ElemTag tag;union{//Atomtype由用户自定义AtomType atom;//ptr是表结点的指针域7struct{struct *GLNode *hp;struct *GLNode *tp;}ptr;};
}*GList;

二、扩展线性链表的存储结构

无论是表结点还是原子结点,均由三个域组成

typedef enum{ATOM,LIST} ELemTag;
typedef struct GLNode
{ElemTag tag;struct GLNode *tp;union{struct GLNode *hp;AtomType atom;}
}*GList;

void Virus_detection()
{ifstream inFile("输入.txt");ofstream outFile("结果.txt");inFile >> num;while(num--){inFile >> Virus.ch+ 1;inFile >> Person.ch + 1;Vir = Virus.ch;flag = 0;m = Virus.length;for(i=m+1,j=1;j<=m;j++) {Virus.ch[i++] = Virus.ch[j];}Virus.ch[2*m+1] = '\0';for(i=0;i<m;i++){for(j=1,j<=m;j++){temp.ch[j] = Virus.ch[i+j];}temp.ch[j+1] = '\0';flag = Index_BF(Person,temp,1);if(flag)break;}}
}

广义表存储结构|数据结构相关推荐

  1. 《数据结构》实验报告(一)——顺序表存储结构及实现

    顺序表存储结构及实现--学生信息管理 一.实验目的 (1) 掌握顺序表的概念及实现方式. (2) 掌握顺序表的存储结构及主要运算:建立.查找.插入.删除等. 二.实验环境 Windows 10,Mic ...

  2. 一个图的带权邻接表存储结构的应用

    情景:在一个图中,已知经过的一串n节点信息,希望显示经过的路径. 数据组织: 点要素:存放图中的点信息,必含Id字段 线要素:存放编辑好的路径信息,必含"Start"和" ...

  3. 树存储结构——数据结构

    文章目录 前言 一.树的定义 二.树的结点 三.子树和空树 四.结点的度和层次 四.有序树和无序树 五.森林 六.树的其他表示方式 总结 前言 数据的逻辑结构 线性结构 线性表 栈(特殊线性表) 队列 ...

  4. 采用邻接表存储结构,编写一个判别无向图中任意给定的两个顶点之间是否存在一条长度为k的简单路径的算法。

    以邻接表存储的有向图中是否存在有顶点Vi到Vj顶点的路径(i!=j). 问题描述:试基于图的深度优先搜索策略编写一程序,判别以邻接表存储的有向图中是否存在有顶点Vi到Vj顶点的路径(i!=j). 输入 ...

  5. 邻接表1试在邻接表存储结构上实现图的基本操作 insert_vertex 和 insert_arc,相关定义如下:icoding---算法改进--配详细注释

    邻接表1 试在邻接表存储结构上实现图的基本操作 insert_vertex 和 insert_arc,相关定义如下: typedef int VertexType; typedef enum{DG, ...

  6. 邻接表2 -试在邻接表存储结构上实现图的基本操作 del_vertex-数据结构-图-icoding

    邻接表2 试在邻接表存储结构上实现图的基本操作 del_vertex,相关定义如下: typedef int VertexType;typedef enum{DG, UDG }GraphType;ty ...

  7. 邻接表1 - 试在邻接表存储结构上实现图的基本操作 insert_vertex 和 insert_arc-数据结构-图-icoding

    邻接表1 试在邻接表存储结构上实现图的基本操作 insert_vertex 和 insert_arc,相关定义如下: typedef int VertexType;typedef enum{DG, U ...

  8. 将图的广度优先遍历在邻接矩阵和邻接表存储结构上分别实现_图解:什么是“图”?

    从今天开始,我们开始介绍图的相关算法 什么是"图" 1.背景 作为图的开始,我们先来看一个经典的问题,它被认为是图论的起源. 这个问题是基于一个现实生活中的事例:河中心有两个小岛. ...

  9. 树的存储结构 - 数据结构和算法41

    树的存储结构 让编程改变世界 Change the world by program 树的存储结构 不好意思哈,这节课又需要大家搞脑子了.对于知识,你理解的越多,需要记住的就越少! 上节课我们简单的介 ...

最新文章

  1. python - 栈与队列(只有代码)
  2. 学习笔记(十五)——MySQL(查询)
  3. 解读Junit的@Test注解,避免initializationerror
  4. 提权学习之旅——利用Metasploit提权
  5. Altium Designer 18 怎么导出CAD文件
  6. 《天天数学》连载42:二月十一日
  7. hive随机抽取100条数据_用Excel进行随机抽取数据
  8. Youki的笔记本配置要求
  9. 人生苦短,请用 Chrome!
  10. xlsxwriter设置列宽_Python3之excel操作——xlsxwriter模块
  11. vue 连接高拍仪实现pc 端拍照上传功能
  12. 利用矩阵特征值求解多项式的根
  13. qchart 怎么点击一下 出一条线_陈奕迅唱歌技巧,学好这几点,你也能唱出更具有穿透力和磁性的声音...
  14. 狐妖小红娘手游服务器维护多久,狐妖小红娘手游:《狐妖小红娘》手游停服公告...
  15. 群晖NAS套件之Hyper Backup的功能和使用方法
  16. 【聚类算法】基于matlab划分法k-means聚类算法【含Matlab源码 1941期】
  17. Vulnhub靶机:DC-7渗透详细过程
  18. -Dmaven.multiModuleProjectDirectory system propert
  19. python输出1到9_1-9-Python格式化字符串(格式化输出)
  20. 3个免费、无损压缩图片的工具,一键解决图片过大问题

热门文章

  1. 许多大学生喜欢玩计算机游戏英语作文,2016年12月大学英语四级作文范文:大学生玩游戏...
  2. 怎么判断英文网站是否做过谷歌优化?
  3. 2022下半年CV计算机视觉领域可投稿国际会议列表(含录用率)
  4. envi查看影像中指定像素的经纬度
  5. [Vue] TodoList 案例
  6. 洛谷T156530 儒略历详解
  7. 第11章 The Extended Kalman Filter
  8. Web安全学习笔记二 计算机网络与协议
  9. python字典的用法_python字典dict使用方法大全
  10. 分布式人工智能:基于TensorFlow RTOS与群体智能体系(文末留言赠书)