永发信息网

c++栈的使用方法

答案:5  悬赏:40  手机版
解决时间 2021-02-26 12:24
  • 提问者网友:贪了杯
  • 2021-02-25 13:26
c++栈的使用方法
最佳答案
  • 五星知识达人网友:山君与见山
  • 2021-02-25 14:59
#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;
}
全部回答
  • 1楼网友:青尢
  • 2021-02-25 18:06
栈和队列是很有联系的,numbers.top()中的numbers是一个自定义的栈的名称,top就是抽取第一个元素。下面我举个例子,头文件就不写了,我直接写代码:
stacknumber;定义一个栈,名称是number,而且是该栈是存放整型数值。
.......
number.push(10);
number.push(20);
number.push(30);//将10,20,30分别压进栈里
.......
cout<number.pop();//删除栈顶元素10,栈顶元素变为20
cout<输出结果:
10
20
应该没有问题了吧,栈其实不难,队列的使用也很相似。
  • 2楼网友:低血压的长颈鹿
  • 2021-02-25 16:37
问专业人士
  • 3楼网友:野味小生
  • 2021-02-25 15:53
记得先进后出就可以了。
cout<栈顶元素。
  • 4楼网友:时间的尘埃
  • 2021-02-25 15:37
栈呢,是先进后出,比如说一个盒子,它是上面开口,把书放进去,也就是先放的书最后才能拿出来,这是栈的规定,栈在实现的时候,是有个两个指针,一个指针指向的永远是是栈的底部,一个指针是指向的永远是栈顶。每次数据进栈的时候呢,栈顶指针就会上移。数据出栈指针就会下向下移动。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯