问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c++栈的使用方法

发布网友 发布时间:2022-04-22 04:59

我来回答

5个回答

热心网友 时间:2023-09-10 01:12

栈呢,是先进后出,比如说一个盒子,它是上面开口,把书放进去,也就是先放的书最后才能拿出来,这是栈的规定,栈在实现的时候,是有个两个指针,一个指针指向的永远是是栈的底部,一个指针是指向的永远是栈顶。每次数据进栈的时候呢,栈顶指针就会上移。数据出栈指针就会下向下移动。

热心网友 时间:2023-09-10 01:12

栈和队列是很有联系的,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

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

热心网友 时间:2023-09-10 01:13

#include "stdafx.h"
#include "iostream.h"
#include "stdlib.h"
#define
MAXSIZE 2 //常量的定义
//给int起一个datatype的别称,及datatype就是int
typedef int datatype;//定义常量
typedef struct /结构体定义
stackstruct
{
datatype stack[MAXSIZE];
int
top;
}Stack;
Stack *s;
void InitStack(Stack *s)
{
s->top=-1;

}

int Empty (Stack *s)
{
if(s->top<0)
return
(1);
else
return (NULL);//return (false);

}

int Full(Stack *s)
{
if((s->top)>=(MAXSIZE-1))

return (1);
else
return (NULL);

}

Stack * InStack(Stack * s,datatype
x)
{
if(Full(s))
{

printf("栈满,不能向栈中插入数据\n");

return(false);
}

else
{

s->top++;
printf("输入一个数据值:\n");

scanf("%d",&x);
s->stack[s->top]=x;

printf("输入的数据是:%d\n",s->stack[s->top]);
return
(s);
}
}

datatype OutStack(Stack *s,datatype
x)
{
if(Empty(s))
{

printf("栈空,不能从栈中删除数据\n");
return
(NULL);
}
else
{

x=s->stack[s->top];

printf("从栈中删除的数据是:%d\n",s->stack[s->top]);

s->top--;
return(x);

}
}

void main ()
{
datatype x=10;
s=(Stack *)malloc
(sizeof(Stack));
InitStack( s);
printf("已经对栈进行了初始化\n");
int n;
while
(1)
{

printf("//////////////////////////////////////////////////\n\n");

printf(" 请选择您要实现的操作:\n");

printf(" 输入0: 退出\n
输入1:向栈中插入数据\n 输入2:从栈中删除数据\n ") ;

printf("//////////////////////////////////////////////////\n\n");

printf("选择:");

scanf("%d",
&n);

if((n!=0)&&(n!=1)&&(n!=2))

{
printf("输入错误\n");

continue;
}

switch ( n
)
{
case 0: exit (0);
case 1:
InStack( s, x); break;
case 2: OutStack( s, x);
break;
}

热心网友 时间:2023-09-10 01:14

记得先进后出就可以了。
cout<<numbers.top()<<"";是什么意思?其中numbers是一个栈!
栈顶元素。

热心网友 时间:2023-09-10 01:14

问专业人士
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 我来自地狱,要前往天堂,途经人间英文 Linux c++ 如何自定义程序的堆栈大小 我来自地狱,要去往天堂,正路过人间。 这句话出自... 8086汇编中,在没有自定义堆栈段的情况下,push的... 《我来自地狱》最新txt全集下载 c++栈的使用方法是什么? 我来自地狱txt全集下载 数据结构 定义一个栈是这样定义的吗?帮忙解读一下 设计一个自定义堆栈类 c++堆栈的各自大小,堆和栈的各自定义 汇编语言自己定义的堆栈 c++自定义类型的模板类(栈)问题? java如何自定义栈? 做自己就好了,是吗? 人生最重要的就是做自己,怎样做才是真正的自己? 做自己就是一种成就为题的八百字作文 做自己是什么意思?怎么才能做自己? 做自己就好,不要去刻意去改变什么啥意思啊 李一桐说做自己就好,可是现实允许我们做自己吗? 坚持做自己就好 我从地狱来,到天堂去,正路过人间。是什么意思 堆和栈从本质上来说有区别吗 typedef struct{int *b,*top; int size;}Stack S;/... “我从地狱来,要到天堂去,正路过人间”,怎么理解... 栈和队列,pop,push是c语言中本身就有的还是需要... 我自地狱来 叶寒是什么小说的人物 〔求助大神〕什么是枚举,堆栈,遍历,自定义 “我从地狱来,到天堂去,正路过人间”出自哪里 我从地狱来,要到天堂去,正在路过人间。是谁说的? 怎么用C语言编写堆栈并能进行四则运算 我本自地狱而来又何惧死亡这句话谁说的 c语言里并没有栈 需要自己编 8086汇编中,怎么定义堆栈段才能使DS!=SS 红与黑“我从地狱来,要到天堂去”什么意思 小说我来自地狱女主角有哪些 (1-2+3-4+5-6+7-8+9)用递归方法怎么写 红与黑作者写的我从地狱来,到天堂去,正路过人间是... 我从地狱来,要到天堂去,正路过人间。 我的世界里我从地狱回来之后地图很多地方变黑了,... 我的世界为什么我从地狱回来是在别的地狱门?而且...