1. 广义表的定义 每个元素可以为Atom,原子,也可以为线性表。 线性表的推广。线性表元素有唯一的前驱和后继,为线性表,而广义表是多层次的线性表 表头:第一个元素,可能是原子,可能是广义表 表尾:除了第一个元素,剩余的元素,所构成的广义表 举例: A = (a,b,(c,d),e) head(A) ...
分类:
编程语言 时间:
2018-04-26 21:04:46
阅读次数:
192
// ConsoleApplication1.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include #include typedef struct node { char ... ...
分类:
其他好文 时间:
2018-04-01 14:25:53
阅读次数:
169
1,什么是广义表? 广义表是由n个表元素组成的有限序列,是线性表的推广。 通常使用递归的形式进行定义,记做:LS=(a0,a1,...,an) 注: 其中LS是表名,ai是表元素,可以是表(称作子表),也可以是数据元素(成为原子)。其中n是广义表的长度(也就是最外层包含的元素个数),n=0的广义表是 ...
分类:
其他好文 时间:
2018-03-26 22:36:31
阅读次数:
251
数据的逻辑结构分为线性结构和非线性结构。 常用的线性结构有:线性表,栈,队列,双队列,数组,串。 常见的非线性结构有:二维数组,多维数组,广义表,树(二叉树等),图。 存储结构是数据的逻辑结构用计算机语言的实现,常见的存储结构有: 顺序存储 , 链式存储 , 索引存储 ,以及 散列存储 。 其中散列 ...
分类:
其他好文 时间:
2018-03-22 23:51:35
阅读次数:
375
根据输入的广义表建立子女右兄弟链的二叉树表示,该二叉树对应于广义表对应的普通树。先考虑更复杂的情形,如果广义表中存在共享表,则将其转换为带共享子树的二叉树表示,每一共享子树带有附加头节点,其左链指针指向共享子树,最后输出带共享子树的子女右兄弟链表示(广义表形式) C++代码: 运行结果: 广义表无共 ...
分类:
编程语言 时间:
2018-02-10 17:08:57
阅读次数:
267
这里把无共享表的广义表的运算代码(基于附加头节点的链表表示)稍作修改,得到了基于附加头节点链表表示的共享表运算代码,这里就不详细注释了,可以参考之前发布的无共享表运算代码的注释来帮助理解,在共享表运算代码里映射表标准库类型map起到了重要作用 广义表(包括共享表情形)字符串形式和链表表示的相互转换: ...
分类:
其他好文 时间:
2018-02-10 17:03:17
阅读次数:
163
这篇文章开始总结 树和二叉树。 什么是树呢? 1、树的定义 (1)有且仅有一个特定的称为根(root) 的节点。 (2)当 n>1 时,其余节点可分为 m(m>0) 个互不相交的集合。其中每个集合本身又是一个棵树,并称为根的子树。 2、树的表示方法 最常见的是 树形表示法 和 广义表表示法,下面是树 ...
分类:
其他好文 时间:
2018-01-20 18:51:43
阅读次数:
214
关于cjson的介绍和使用方法就不在这里介绍了,详情请查看上一篇博客cjson使用方法。 JSON的内存结构像广义表,可以认为是有层次的双向链表。 cJSON程序中的细节点如下: 大量宏替换 大量静态函数 错误处理机制 字符串处理时存在utf16转utf9,编码转换 用函数指针封装malloc,fr ...
分类:
Web程序 时间:
2017-12-31 10:55:25
阅读次数:
242
head是取广义表的第一个元素(外层的括号去除); tail是取除第一个元素以外的所有尾部元素(注意外层的括号不能去除)。 ...
分类:
其他好文 时间:
2017-11-24 00:05:40
阅读次数:
174
banner banner 首页 概论 线性表 广义表 栈和队列 串 多维数组 树 图 排序 查找 文件 习题 大纲 课件 代码 首页 概论 线性表 广义表 栈和队列 串 多维数组 树 图 排序 查找 文件 习题 大纲 课件 代码 数据结构 Data Structure 数据结构 Data Stru ...
分类:
其他好文 时间:
2017-10-16 13:44:56
阅读次数:
194