?? cpp1.cpp
字號:
# include<iostream.h>
/************棧的定義**************/
class DouStack
{
public:
int top1,top2;
int * stacka; //用數組存儲棧種元素
public:
DouStack();
~DouStack(){};
void push(int,int Num);
int pop(int Num);
int empty1(void) const {return top1==0;}
int empty2(void) const {return top2==99;}
int full() const {return top1==top2;}
void clear(int Num)
{
if(Num==1) {top1=0;}
else
if(Num==2) {top2=99;}
else cout<<"輸入有誤,沒有此棧!"<<endl;
}
};
/************棧的建立**************/
DouStack::DouStack():top1(0),top2(99)
{
stacka=new int[100];
if(stacka==NULL)
{
cout<<"存儲分配失敗!"<<endl;
// exit(1);
return;
}
}
/************入棧操作**************/
void DouStack::push(int item,int Num)
{
if(full())
{
cout<<"棧已滿,不能入棧!"<<endl;
return;
}
switch(Num) //棧未滿,入棧
{
case 1:
{
stacka[top1]=item;
top1++;
return;
}
case 2:
{
stacka[top2]=item;
top2--;
return;
}
default:return;
}
}
/************出棧操作**************/
int DouStack::pop(int Num)
{
switch(Num)
{
case 1:
{
if(empty1())
{
cout<<"棧1已空!"<<endl;
}
top1--;
int data=stacka[top1];
return data;
}
case 2:
{
if(empty2())
{
cout<<"棧2已空!"<<endl;
}
top2++;
int data=stacka[top2];
return data;
}
default:cout<<"沒有此棧!";
}
}
/************主函數**************/
void main()
{
DouStack exp;
int n1=0,n2=0;
int a,i;
cout<<"請輸入要入棧1的元素的數量(數值小于101):"<<endl;
cin>>n1;
cout<<"請連續輸入"<<n1<<"個數入棧1:"<<endl;
if(n1!=0)
{
for(i=0;i<n1;i++)
{
cin>>a;
exp.push(a,1);
}
}
cout<<"請輸入要入棧2的元素的數量(數值小于"<<100-n1<<",否則棧滿):"<<endl;
cin>>n2;
cout<<"請連續輸入"<<n2<<"個數入棧2:"<<endl;
if(n2!=0)
{
for(i=0;i<n2;i++)
{
cin>>a;
exp.push(a,2);
}
}
cout<<"棧1中的元素為(從棧底到棧頂):"<<endl;
for(i=0;i<n1;i++)
{
cout<<exp.stacka[i]<<" ";
}
cout<<endl<<"棧1中元素依次出棧:"<<endl;
for(i=0;i<n1;i++)
{
cout<<exp.pop(1)<<" ";
}
cout<<endl<<"棧2中的元素為(從棧底到棧頂):"<<endl;
for(i=99;i>99-n2;i--)
{
cout<<exp.stacka[i]<<" ";
}
cout<<endl<<"棧2中元素依次出棧:"<<endl;
for(i=0;i<n2;i++)
{
cout<<exp.pop(2)<<" ";
}
cout<<endl;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -