注册 登录
编程论坛 数据结构与算法

帮忙修改下算法

qlzqj 发布于 2012-06-09 15:30, 582 次点击
#include<stdio.h>
#include<iostream>
using namespace std;

#define MAX 10000
#define isEmpty(s) (s.top==-1)
typedef struct{
 int data[MAX];
 int top;
}Stack;
void init(Stack &s)//初始化
{
 s.top=-1;
 for(int i=0;i<10;i++)
  s.data[++s.top]=i;
};
void Push(Stack &s,int i)//入栈
{
 s.data[++s.top]=i;
};
int Pop(Stack &s)//出栈
{ if(!isEmpty(s))
  return s.data[s.top--];
 else return NULL;
};
int getBase(Stack s)//返回栈底
{
 if(isEmpty(s))
  return NULL;
 int r;
 while(!isEmpty(s))
  r=Pop(s);
 return r;
};
void print(Stack s)//打印
{
 while(!isEmpty(s))
  cout<<Pop(s)<<' ';
 cout<<endl;
};
void main()//测试
{
 Stack s;
 init(s);
 cout<<getBase(s)<<endl;
 print(s);
};
这个能使栈中的元素顺序逆转吗?????
1 回复
#2
AllSunday2012-06-15 21:29
你是要逆序打印吗?
把POP里的--改成++?
1