一、简介 众所周知,线性表是数据结构的基础,通常有两种实现方式:数组和链表。栈和队列是最常用的数据结构,它们基于线性表实现。 二、栈 定义:栈是限定仅在表尾进行插入和删除操作的线性表,即FILO。 栈被经常类比于弹夹,即先被压如弹夹的子弹最后被打出。根据线性表的实现方式得知,栈的实现方式有两种:数组 ...
分类:
编程语言 时间:
2017-04-12 02:56:07
阅读次数:
277
使用标准库的栈和队列时,先包含相关的头文件 #include<stack> #include<queue> 定义栈如下: stack<int> stk; 定义队列如下: queue<int> q; 栈提供了如下的操作 s.empty() 如果栈为空返回true,否则返回falses.size() 返 ...
分类:
编程语言 时间:
2017-04-04 14:18:21
阅读次数:
159
题目: 一个栈中的元素类型为整型,现在想将该栈从顶到底按从大到小的顺序排序,只允许申请一个栈。如何完成排序? 将排序的栈记为 stack,辅助栈记为 help,在stack上执行pop操纵,弹出的元素为 tmp 1. 如果 tmp 大于或等于 help 的栈顶元素或 help 为空,则将 tmp 压 ...
分类:
编程语言 时间:
2017-04-02 12:29:06
阅读次数:
177
使用标准库的栈和队列时,先包含相关的头文件 #include<stack> #include<queue> 定义栈如下: stack<int> s; 定义队列如下: queue<int> q; ...
分类:
其他好文 时间:
2017-03-23 01:14:08
阅读次数:
114
栈和队列都是线性表,所以满足-只有一个节点没有前继,只有后继,只有一个节点只有后继没有前继,其他的节点只有一个前继只有一个后继。 栈的定义是先进后出,最典型的例子就是弹夹,最先进去的反而是最后射出来的,在实际的软件开发中会进经常的遇到这种类型的线性表,我们成为LIFO(Last in First o ...
分类:
其他好文 时间:
2017-03-18 22:45:04
阅读次数:
137
1.前中后缀表达式的转换: 举例说明将自然表达式转换成二叉树: a×(b+c)-d ① 根据表达式的优先级顺序,首先计算(b+c),形成二叉树 ②然后是a×(b+c),在写时注意左右的位置关系 ③最后在右边加上 -d 然后最这个构造好的二叉树进行遍历,三种遍历的顺序分别是这样的: ① 前序遍历:根- ...
分类:
其他好文 时间:
2017-03-16 21:59:33
阅读次数:
199
一、线性表(list) 1、定义:有序、有限的数据序列,其中的每个数据称为元素(element)。 注:在这里本文中所指的元素的数据类型相同。 2、基本概念:空(empty)、长度(length)、头(head)、尾(tail)、有序表(sorted list)、无序表(unsorted list) ...
分类:
其他好文 时间:
2017-03-11 01:00:32
阅读次数:
194
基本概念 栈(Stack)是一种后进先出(last in first off,LIFO)的数据结构; 队列(Queue)是一种先进先出(first in first out,FIFO)的结构; 实现 现在来看如何实现以上两个数据结构。 Stack的实现 栈是一种后进先出的数据结构,对于Stack我们 ...
分类:
其他好文 时间:
2017-02-28 12:21:12
阅读次数:
275
1.大纲 2.栈的定义 3.栈的特点 只能在栈顶进行插入 删除也是如此。 4.队列的特点 只能在队列的尾部添加 但是在头部进行删除。 5.栈的基本操作 6.栈的应用实现 二:具体的应用 1.数值转换 2.括号的匹配 3.行编辑器问题 这里出现退行与退格符。 4.迷宫求解 5.表达式求解 6.递归 三 ...
分类:
其他好文 时间:
2017-02-26 22:33:46
阅读次数:
220
1、string类:一个key对应一个value(key:value)。string类是二进制安全,可以包含任何数据(例如:图片、音乐)。 2、hash类:string类型field和value的映射表。特别适合存储对象。 3、list类:栈和队列数据结构链式操作。 4、set类:set集合中元素是 ...
分类:
其他好文 时间:
2017-02-25 18:31:56
阅读次数:
192