标签:
线性结构
1.数据元素之间满足唯一的线性关系。
2.每个数据元素(除第一个和最后一个外)只有一个直接前趋和一个直接后继。
线性表 (顺序表,链表,栈,队列)
1.最简单和最常用的一种数据结构
2.由n个数据元素(结点)组成的有限序列
顺序表
1.线性表的数据元素按逻辑次序依次存入一组地址真实的存储单位。
链表 (单向链表,双向链表,循环链表)
1.线性表的数据元素除了存储自身的信息以外,还需要一个存储指示器后继元素,存储位置的指针。
2.一个结点的存储结构为data|next,n个结点链成一个链表。
栈 (Stack)
1.限定在表的一端进行插入和删除运算的线性表
2.遵循后进先出(Last In First Out)原则
队列 (Quene)
按存储方式划分:顺序队列,链队列,环形队列
1.只允许在表的一端进行元素插入,而在另一端进行元素删除
2.遵循先进先出(First In First Out)原则
非线性结构
树形结构
1.数据元素之间有着明显的层次关系,并且每个元素只与上一层中的一个元素(双亲结点)及下层中的多个元素(孩子结点)相关
二叉树 (二叉树,满二叉树,完全二叉树,最优二叉树)
按存储方式划分:顺序存储结构,链式存储结构
1.每个结点至多只有两个孩子,而其子树有左右之分的有序树。
2.符合三大性质(具体后续文章说明)
图型结构 (graph)
遍历方式:深度优先搜索遍历,广度优先搜索遍历
存储结构:邻接矩阵表示法,邻接表表示法
1.结点之间的关系是任意的。
2.特殊的树形结构
多维数组
按内存表现形式划分: 行向量,列向量
1.线性表的推广
2.由于计算机的内存结构是一唯的,所以二位数据使用行向量或列向量表示
广义表
结点数据结构: tag|data/slink|link
tag: 用来区分当前结点是原子还是子表
data/slink 存放原子数据 或者 子表地址
link 存放下一个元素对应的结点的地址
1.带有层次的非线性结构
2.通常使用链式存储结构
3.每个结点由三个域构成,其中tag是一个标志位,用来区分当前结点是原子还是子表。
标签:
原文地址:http://www.cnblogs.com/sz-zzm/p/5468399.html