树形结构是一类重要的非线性结构数据结构。其中以树和二叉树最为常用,直观看来,树是以分支关系定义的层次结构。 树的定义与基本术语 树的结构定义是一个递归定义,即在树的定义中又用到树的概念。除了树形表示外,树形结构还有广义表表示、文氏图表示(反映集合包含关系)和凹人表示(类似一本书的目录)等其他表示形式 ...
分类:
其他好文 时间:
2017-10-02 23:04:20
阅读次数:
261
广义表的创建与打印 本文取自《数据结构与算法》(C语言版)(第三版),出版社是清华大学出版社。 本博文作为学习资料整理。源码是VC++ 6.0上可运行程序,我挪到了VS2010中运行。 在VS2010中新建C++ Win32 控制台应用程序项目,创建结果截图: 1.广义表的创建: 广义表的存储结构示 ...
分类:
其他好文 时间:
2017-07-15 18:57:13
阅读次数:
203
当广义表LS非空时,称第一个元素a1为LS的表头(Head),称其他元素组成的广义表(a2,a3,…,an)为LS的表尾(Tail)。 注:表头和表尾是在LS非空的前提下定义的,所以对于一个空表(),没有表头与表尾的说法。 值得提醒的是,列表()和(())不同,前者为空表,长度为n=0;后者长度n= ...
分类:
其他好文 时间:
2017-06-29 10:05:19
阅读次数:
120
1.定义:广义表是一种复杂的数据结构,是线性表的扩展,能够表示树结构和图结构。 2.细分定义:广义表是n个数据元素a0,a1,...,an-1组成的有限序列,记为GList=(a0,a1,...,an-1)其中,(1)ai或为不可分的数据元素(称为原子),或为可再分的广义表(称为子表)。(2)广义表 ...
分类:
其他好文 时间:
2017-06-21 21:59:42
阅读次数:
189
数据结构: 数据按逻辑结构分类有: 线性结构(队列,栈,串):有且仅有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继 非线性结构:一个结点可能有多个直接前趋和直接后继,如树,图,广义表 数据的四种基本存储方法: (1)顺序存储方法:该方法把逻辑上相邻的结点存储在物理位置 ...
分类:
其他好文 时间:
2017-06-21 18:53:50
阅读次数:
237
1 //广义表转二叉树: 2 设置一个标记变量k,初始值为-1; 3 设置一个标记结点p; 4 循环遍历广义表的字符串str; 5 如果str[i]是左括号: 6 则设置k为0; 7 把p压入栈中。 8 否则如果str[i]是逗号: 9 则设置k为1。 10 否则如果str[i]是右括号... ...
分类:
其他好文 时间:
2017-06-16 11:31:37
阅读次数:
353
//广义表的头尾链表存储表示 //杨鑫 #include <stdio.h> #include <malloc.h> #include <stdlib.h> #include <string.h> #define MAXSTRLEN 40 ) typedef char SString[MAXSTRL ...
分类:
编程语言 时间:
2017-06-08 15:54:28
阅读次数:
252
在深入浅出数据结构系列前面的文章中,我们一直在讨论的表其实是“线性表”,其形式如下: 由a1,a2,a3,……a(n-1)个元素组成的序列,其中每一个元素ai(0<i<n)都是一个“原子”,“原子”的意思就是说元素本身是一个个体,所有元素都是相同的结构。 但是在我们常见的某些应用,比如Excel的表 ...
分类:
编程语言 时间:
2017-05-22 17:55:25
阅读次数:
264
《数据结构与教程 第二版》(北航出版社) 数据结构 线性表 数组、串、广义表 特殊线性表:栈、队列 栈、队列 存储:线性存储、链式存储 基本操作(6):初始化、判空、判满、进、出、取头元素 树:见 数据结构_树与二叉树总结-MarchOn 图:见 数据结构_图总结-MarchOn 索引、散列 内排序 ...
分类:
其他好文 时间:
2017-05-21 21:51:47
阅读次数:
181
稀疏矩阵的十字链表实现和转置 一、数组和广义表的定义 数组的定义1:一个 N 维数组是受 N 组线性关系约束的线性表。 二维数组的逻辑结构可形式地描述为: 2_ARRAY(D,R) 其中 D={aij} | i=0,1,...,b1-1; j=0,1,...,b2-1;aij∈D0} R={Row, ...
分类:
编程语言 时间:
2017-05-18 01:09:30
阅读次数:
327