顺序栈
凌空的桨
https://github.com/marsmarcin/
展开
-
顺序表示的栈——顺序栈1——内容介绍
栈(stack)是一种操作受限的线性表。栈除了具有线性表的结构特点:除了第一个元素和最后一个元素外,其他元素只有一个前驱元素和一个后继元素。栈的限制在于它只允许在表的一端进行插入和删除运算。在日常生活中,有许多栈的例子,进制转换、表达式求值、括号匹配使用等都是栈的“后进先出”设计思想。【定义】 栈(stack),也叫堆栈,它是限定仅在表尾进行插入和删除操作的线...原创 2018-11-21 14:53:22 · 1522 阅读 · 1 评论 -
顺序表示的栈——顺序栈2——出入栈操作
出栈和入栈 利用顺序栈的基本操作,将元素A,B,C,D,E,F,G,H依次入栈,再将栈顶元素即H,G出栈。然后把X,Y入栈,最后将元素全部出栈,并依次输出出栈元素。 SeqStack.h#pragma once#include <iostream>using namespace std;#define StackSize 100typedef char...原创 2018-11-21 15:26:09 · 1429 阅读 · 0 评论 -
顺序表示的栈——顺序栈3——共享栈
在使用顺序栈时,定义空间过大,可能造成有些栈空闲,空间并没有有效利用。为了使栈的空间能充分利用,可以让多个栈共享一个足够大的连续存储空间,通过移动栈顶指针,从而使多个栈空间互相补充,存储空间得到有效利用,这就是共享栈的设计思想。 最常见的是两个栈的共享。栈的共享原理是利用栈低固定,栈顶迎面增长的方式。可通过两个栈共享一个一维数组实现,两个栈的栈低设置在数组的两端,当有元素进栈时,栈顶位置从栈...原创 2018-11-21 17:00:59 · 2219 阅读 · 0 评论 -
顺序表示的栈——顺序栈4——求组合数
求C(n,m)的值,试利用栈的后进先出算法思想,编写非递归算法,求C(n,m)的值,并给出栈的变化过程。组合数C(n,m)的递归算法是:C(n,m)=C(n-1,m)+C(n-1,m-1),当n>m,n≥0,m≥0时,已知条件是:当n≥0时,C(n,0)=1,C(n,n)=1.计算C(n,m)的值利用递归很容易实现,为了模拟递归的运算过程,可以用一个栈stack来实现。定义...原创 2018-11-22 19:56:53 · 458 阅读 · 0 评论