const int maxsize=6
class stack{
float data[maxsize]
int top
public:
stack(void)
~stack(void)
void push(float a)
bool empty(void)
float pop(void)
}
stack::stack(void){
top=0
cout<<"stack initialized."脊顷<<endl
}
stack::~stack(void){
cout<<"stack destoryed"<<endl
}
bool stack::empty(void){
return top==0
}
void stack::push(float a){
if(top==maxsize){
cout<樱念陆<"Stack overflow!"<<endl
return
}
data[top]=a
top++
}
float stack::pop(void){
if(top==0){
cout<<"An empty stack!"<<endl
return 0
}
top--
return data[top]
}
int main()
{
stack s1,s2
float i=0.0
for(i<=maxsizei++)
s1.push(2*i)
for(i=1i<=maxsizei++)
cout<<s1.pop()<<"高悔 "
for(i=1i<=maxsizei++)
s1.push(2.5*i)
for(i=1i<=maxsizei++)
s2.push(s1.pop())
cout<<endl
do
cout<<s2.pop()<<" "
while(!(s2.empty()))
cout<<endl
return 0
}
#include <stdio.h>#include<string.h>
void main()
{
char behavior[10]
int stack[100]
int i,n,cnt
scanf("%d",&n)
for(i=n-1i>=0i--)
{
scanf("%d",&stack[i])
}
scanf("%d",&cnt)
while(cnt--)
{
memset(behavior,0,5)
scanf("%s",behavior)
if(!strcmp(behavior,"PUSH"))
{
for(i=n++i>改简0i--)
{
stack[i]=stack[i-1]
}
scanf("宽歼腔%d",&stack[0])
continue
}
if(!strcmp(behavior,"POP"))
{
for(i=0i<ni++)
{
stack[i]=stack[i+1]
}
n--
}
}
for(i=n-1i>=0i--)
{
printf("%d ",stack[i])
}
printf("\n")
}
程序输入的时候没有提示(可以加),不知道你习慎衫不习惯。
就用这堆启乎函数就可以了,不懂再追问#include <string.h>
#define MaxSize 100
int mystack[MaxSize]/* 第0个单晌首元保存现在的长度 */
/* 初始化函数 */
void init_stack(int* stack){
memset(stack,0,sizeof(stack))
}
/* 入栈函数 */
void push_back(int* stack,int&num){
if(stack[0]<MaxSize-1){
++stack[0]
stack[ stack[0] ] = num
}
else{
printf("ERORR!\n")
}
}
/* 返回栈空间 */
int size(int* stack){
return stack[0]
}
/* 返回栈顶函数悄谨悉 */
int top(int* stack){
if(stack[0]>0){
return stack[ stack[0] ]
}
else{
printf("ERORR!\n")
return -1
}
}
/* 出栈函数 */
void pop(int* stack){
if(stack[0]>0){
--stack[0]
}
else{
printf("ERORR!\n")
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)