利用棧對資料進行逆置操作
阿新 • • 發佈:2019-02-06
#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;
}
#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;
}