本篇文章是模拟LinkedList实现其中的:添加,取值,入队,出队,入栈,出栈 1.动态数组的实现 2.队列的实现 3.栈的实现 4.测试类 ...
分类:
编程语言 时间:
2016-05-18 21:42:08
阅读次数:
196
栈的定义--Stack栈只允许在末端(即是栈顶)进行插入和删除的线性表。栈具有后进先出的特性(LIFO,LastInFirstOut)。下面是关于栈的实现:#include<iostream>#include<string>usingnamespacestd;template<classT>//栈有动态与静态之分//栈适合用顺序表(无..
分类:
其他好文 时间:
2016-05-14 17:10:22
阅读次数:
170
栈实现的是后进先出(先进后出)策略,队列实现的是先进先出策略。
1 栈
栈上的操作主要包括
INSERT操作称为压入(PUSH)。注意上溢问题,即往满栈里添加元素。
无参数版本的DELETE操作称为弹出(POP)。注意下溢问题,即从空栈上取元素。
STACK-EMPTY判断栈是否为空
栈的实现思路
用一个数组s[1..n]来实现一个最多可容纳n个元素的栈。该数组有一个参数s.top用...
分类:
其他好文 时间:
2016-05-12 15:38:30
阅读次数:
158
栈的定义--Stack 栈是只允许在末端进行插入和删除的线性表。栈具有后进先出的特性(LIFO ,Last In Fast Out)。 学过数据结构的人都知道:栈可以用两种方式来实现,一种方法是用数组实现栈,这种栈成为静态栈;另外一种方法是用链表实现栈,这种栈叫做动态栈。 栈的实现 下面是用C++实 ...
分类:
其他好文 时间:
2016-05-07 22:16:19
阅读次数:
193
栈定义:后进先出的数据结构实现一:基于数组表示的线性表的派生栈的实现。
原理:把线性表的插入和删除操作限制在同一端进行,即得到栈的表现形式。
操作:把数组线性表的右端定义为栈顶。
代码:template
class stack
{
public:
virtual ~stack() {};
virtual bool empty() const = 0;...
分类:
编程语言 时间:
2016-05-07 10:08:44
阅读次数:
211
1、单向链接
单向链表适用于只从一端单向访问的场合,这种场合一般来说:
(1)、删除时,只适合删除第一个元素;
(2)、添加时,只直接添加到最后一个元素的后面或者添加到第一个元素的前面;
(3)、属于单向迭代器,只能从一个方向走到头(只支持前进或后退,取决于实现),查找效率极差。不适合大量查询的场合。
这种典型的应用场合是各类缓冲池和栈的实现。
2、双向链表
...
分类:
其他好文 时间:
2016-05-07 10:02:40
阅读次数:
141
今天学习了利用数组方式的栈的C++实现,这种方式跟指针实现有很多不一样的地方: 栈的指针实现,栈的创建申请头结点,push需要申请新的结点,pop释放结点,这些结点都放在第一个位置,top时,S->next->data即可。 栈的数组实现,只申请一个结点,该结点的结构体内包含,数组的最大容量、栈顶元 ...
分类:
编程语言 时间:
2016-05-05 17:37:34
阅读次数:
470
今天学习了栈的C++实现,跟单链表很像: push相当于单链表在第一个位置插入元素; pop相当于单链表在第一个位置删除元素; 1、空栈检查 2、创建一个空栈 空栈只有头结点,第9行表示若不为空栈则删除除头结点以外的所有结点。 3、清空栈(保留头结点) 4、push操作 5、top操作 6、pop操 ...
分类:
编程语言 时间:
2016-05-03 23:29:10
阅读次数:
288
java数据结构之栈的实现,可是入栈,出栈操作; ...
分类:
编程语言 时间:
2016-04-27 09:37:27
阅读次数:
217
/*1.判断栈是否为空2.得到栈的长度3.元素入栈4.元素出栈5.清空栈6.栈顶元素7.栈底元素*/栈的空间动态增加:/*动态增加空间大小,而不是在初始化时,定义一个非常大的空间原理:注意:动态增加大小时,以原大小的两倍配置一块新的空间,然后将原内容拷贝过来,并释放原空间,再将..
分类:
编程语言 时间:
2016-04-25 19:49:10
阅读次数:
130