导航:首页 > 使用方法 > 栈的常用方法

栈的常用方法

发布时间:2022-01-08 16:18:30

⑴ 2、 定义一个类模板MyStack,具有栈操作的常用方法,如下所示(不必具体实现):

所谓栈 等数据结构都不是系统自带的数据类型 是抽象数据类型(ADT) 它们再逻辑上可以形象地理解 比如栈就是后进先出 类似箩筐 但实现它还是要物理上得以实现 这就要你自己写该结构的属性(数据) 和方法(操作)了

所谓定义一个栈就是定义了一个类

tpyedef class stack
{
....

}

其中包括数组s[]存放数据 然后一个 int l 表示栈顶 再定义各个操作等等 逻辑上讲是一个数据结构 实际上就是一个class 楼主理解了吧? 你自己写的类当然不能算系统的保留字 自然就没有反色等显示了

什么是堆栈堆栈的操作方式有哪两种

堆栈是一种执行“后进先出”算法的数据结构。

堆栈就是这样一种数据结构。它是在内存中开辟一个存储区域,数据一个一个顺序地存入(也就是“压入——push”)这个区域之中。有一个地址指针总指向最后一个压入堆栈的数据所在的数据单元,存放这个地址指针的寄存器就叫做堆栈指示器。开始放入数据的单元叫做“栈底”。数据一个一个地存入,这个过程叫做“压栈”。在压栈的过程中,每有一个数据压入堆栈,就放在和前一个单元相连的后面一个单元中,堆栈指示器中的地址自动加1。读取这些数据时,按照堆栈指示器中的地址读取数据,堆栈指示器中的地址数自动减 1。这个过程叫做“弹出pop”。如此就实现了后进先出的原则。

最基本的操作方式 就是 入栈和出栈

⑶ 常说的栈,方法区,堆什么的都什么意思

堆栈是一种执行“后进先出”算法的数据结构。设想有一个直径不大、一端开口一端封闭的竹筒。有若干个写有编号的小球,小球的直径比竹筒的直径略小。现在把不同编号的小球放到竹筒里面,可以发现一种规律:先放进去的小球只能后拿出来,反之,后放进去的小球能够先拿出来。所以“先进后出”就是这种结构的特点。堆栈就是这样一种数据结构。它是在内存中开辟一个存储区域,数据一个一个顺序地存入(也就是“压入——push”)这个区域之中。有一个地址指针总指向最后一个压入堆栈的数据所在的数据单元,存放这个地址指针的寄存器就叫做堆栈指示器。开始放入数据的单元叫做“栈底”。数据一个一个地存入,这个过程叫做“压栈”。在压栈的过程中,每有一个数据压入堆栈,就放在和前一个单元相连的后面一个单元中,堆栈指示器中的地址自动加1。读取这些数据时,按照堆栈指示器中的地址读取数据,堆栈指示器中的地址数自动减 1。这个过程叫做“弹出pop”。如此就实现了后进先出的原则。堆栈是计算机中最常用的一种数据结构,比如函数的调用在计算机中是用堆栈实现的。堆栈可以用数组存储,也可以用以后会介绍的链表存储。下面是一个堆栈的结构体定义,包括一个栈顶指针,一个数据项数组。栈顶指针最开始指向-1,然后存入数据时,栈顶指针加1,取出数据后,栈顶指针减1。#define MAX_SIZE 100typedef int DATA_TYPE;struct stack{DATA_TYPE data[MAX_SIZE];int top;}

⑷ 栈的操作

struct stack
{
int no;
int top;
int bottom;
int *v;
}S1,S2;
int n;
#define N 20
int v[N];
inistack(int v[]){
s1.no=1;
s1.top =s1.bottom =0;
s1.no=2;
s1.top =s1.bottom =n-1;
s1.v=s2.v=v;
}

void push(int v[], int i, int x){
if(i==1){
v[s1.top++]=x;
}
else{
v[s2.top--]=x;
}
}
///////////////////////////////////////////////////////
// 带返回值弹出
int pop(int v[], int i)
{
int cur= 0;

if(i==1){
cur=v[s1.top--];
}
else{
cur=v[s2.top++];
}
return cur;

}
//不带返回值弹出 void pop(int v[],int i)
{
if(i==1){
s1.top--;
}else if(i==2)
{
s2.top++;
}
}

⑸ c++栈的使用方法是什么

栈和队列是很有联系的,numbers.top()中的numbers是一个自定义的栈的名称,top就是抽取第一个元素。下面我举个例子,头文件就不写了,我直接写代码:

stack<int>number;定义一个栈,名称是number,而且是该栈是存放整型数值。
.......
number.push(10);
number.push(20);
number.push(30);//将10,20,30分别压进栈里
.......
cout<<number.pop()<<endl;//输出栈顶元素10
number.pop();//删除栈顶元素10,栈顶元素变为20
cout<<number.pop()<<endl;//输出栈顶元素20

输出结果:
10
20

应该没有问题了吧,栈其实不难,队列的使用也很相似。

阅读全文

与栈的常用方法相关的资料

热点内容
驼鸟蛋的保养方法视频 浏览:968
进行压缩机能量调节的常用方法 浏览:385
312经络锻炼方法和技巧 浏览:553
末日如何生存方法 浏览:1001
女儿红的制作方法步骤 浏览:330
欲把西湖比西子用什么修辞方法 浏览:764
脚部弹力绳训练方法女 浏览:73
桃花胶的功效与作用及食用方法 浏览:879
用香蕉酸奶做面包很简单的方法 浏览:788
膏药的使用方法 浏览:851
无限边坡分析方法 浏览:901
如何做糖糕的制作方法 浏览:278
月经不调如何治疗方法 浏览:274
如何封装方法 浏览:214
海钩的连接方法 浏览:132
除了整容还有哪些方法可以廋脸 浏览:402
魅族的系统铃声在哪里设置方法 浏览:247
电脑鼠标箭头颜色设置方法求回答 浏览:870
电化学方法酒精检测 浏览:293
5孔插座安装方法 浏览:595