1. 程式人生 > >利用棧對資料進行逆置操作

利用棧對資料進行逆置操作

#include "stdafx.h"
#include<iostream>
using namespace std;
class stack                     //利用棧將元素逆置  
{
private:
int msize;    //棧中可存放的最多的元素個數
int top;      //棧頂位置
int *st;      //存放棧元素的陣列
public:
stack(int i)      //建立一個長度為i的棧。
{
msize = i;
top = -1;        //此時top=-1,說明為空棧
st = new int[i];   //存放棧元素的陣列
}
~stack()   //解構函式
{
delete[]st;
}
bool isempty()    //判斷是否為空棧
{
if (top == -1)    //通過判斷棧頂元素確定
{
cout << "該棧為空棧" << endl;
return true;
}
return false;
}
bool push()      //入棧操作
{
while(top < msize-1)    //利用while迴圈結構,將元素輸入資料。
{
top++;
   cin >> st[top];
}
return true;
}
bool isfull()    //判斷棧滿
{
if (top == msize-1)    通過對棧頂元素的定位實現
{
cout << "棧滿" << endl;
return true;
}
return false;
}
bool pop()    //出棧操作 
{
while (top > -1)            //利用入棧的思想,出棧也可以通過while迴圈實現
{
cout << st[top] << " ";
top--;
}
return true;
}
};
int main()
{
stack B(7);
cout << "判斷棧是否為空;" << endl;
B.isempty();
cout << "請輸入佇列中元素;" << endl;
B.push();
cout << "判斷是否棧滿:" << endl;
B.isfull();
cout << "逆置輸出元素:" << endl;
B.pop();
    return 0;
}