数据结构提纲

3 栈

后进先出的线性表

3.1 栈的顺序实现

利用动态数组,栈底下标为0,用一个整型数储存栈顶的位置

3.2 栈的链接实现

将单链表的头指针指向栈顶

3.3 栈的应用

递归消除
括号配对
计算器

4 队列

先进先出的线性表

4.1 队列的顺序实现

队头位置固定:队头下标为0,出队操作后面的元素都要向前移动
队头位置不固定:入队出队操作是O(1),但是浪费空间
循环队列:规定front指向的单元不存储队列

4.1 队列的链接实现

单链表的表头是队头,单链表的表尾是队尾,保存一个链接队列只需要两个指向单链表结点指针front和rear
当队列为空时,front和rear均为NULL

5 树

5.1 树的概念

树的定义:
有一个根节点,其余节点可分成若干个互不相交的树
不含任何节点的是空树,由若干互不相交的树的集合是森林
一个结点的直接后继的数目称为结点的度

5.2 二叉树

5.2.1 基本概念

二叉树:二叉树或者为空,或者由根节点和互不相交的左右子树构成,且左右子树都是二叉树
满二叉树:一个高度为k并具有2k-1个结点的二叉树称为满二叉树。
完全二叉树:满二叉树最底层从右到左去掉若干个结点。
注意只有根节点的二叉树不是空二叉树,而且二叉树需严格区分左右子树。

5.2.2 二叉树的遍历

前序遍历:根节点->左子树->右子树
中序遍历:左子树->根节点->右子树
后序遍历:左子树->右子树->根节点
顺序遍历:一层一层的来
在这里插入图片描述
仅有前序遍历和后序遍历的结果无法确定唯一的二叉树。

5.2.3 二叉树的顺序实现

利用完全二叉树按层编号的性质,编号可表现父子关系
缺点:对于非完全二叉树,比较费空间

5.2.4 二叉树的链接实现

二叉链表
三叉链表:存放父节点、左右儿子结点

5.3 树的应用

表达式树
哈夫曼树和哈夫曼编码

猜你喜欢

转载自blog.csdn.net/tiaozhanzhe1900/article/details/83151506
今日推荐