繼續更文。這次用類來寫棧和隊列,都是用數組模擬的;
以下是棧和隊列的定義:

然后分別是棧和隊列的類:


完整代碼貼上:
棧
//使用類來定義棧
class ZHAN
{
public:
STACK s;
//棧的基本操作
void csh(STACK & s); //初始化
bool isempty(STACK & s); //判斷是否為空
bool isfull(STACK & s); //判斷是否為滿
bool push(STACK & s,int val); //入棧
bool pop(STACK & s,int & val); //出棧
int ding(STACK & s); //取棧頂元素
int len(STACK & s); //取棧的長度(有效元素個數)
void SHOW(STACK & s); //遍歷棧
};
void ZHAN::csh(STACK & s)
{
s.top=-1;
}
bool ZHAN::isempty(STACK & s)
{
if(-1==s.top)
return true;
else
return false;
}
bool ZHAN::isfull(STACK & s)
{
if(s.top==MAX-1) //下標從零開始
return true;
else
return false;
}
bool ZHAN::push(STACK & s,int val)
{
if(isfull(s))
return false;
else
{
s.data[++s.top]=val; //top指針從-1開始 所以先++才能用
return true;
}
}
bool ZHAN::pop(STACK & s,int & val)
{
if(isempty(s))
return true;
else
{
val=s.data[s.top--];
return true;
}
}
int ZHAN::ding(STACK & s)
{
if(isempty(s))
{
cout<<"此棧為空棧!!"<<endl;
}
else
{
return s.data[s.top];
}
}
int ZHAN::len(STACK & s)
{
return s.top+1;
}
void ZHAN::SHOW(STACK & s)
{
int i;
while(!isempty(s)) //當棧不為空 不斷的出棧取值
{
pop(s,i);
cout<<i<<endl;
}
}
隊列
//使用類來定義隊列
class DUILIE
{
public:
QUEUE q;
//隊列的基本操作
void csh(QUEUE & q); //初始化
bool isempty(QUEUE & q); //判斷是否為空
bool isfull(QUEUE & q); //判斷是否為滿
int head(QUEUE & q); //取隊頭元素
bool pop(QUEUE & q,int & val); //將隊頭元素出隊
bool push(QUEUE & q,int val); //將隊尾元素入隊
void SHOW(QUEUE & q); //遍歷隊列
};
void DUILIE::csh(QUEUE & q)
{
q.f=-1;
q.r=-1;
}
bool DUILIE::isempty(QUEUE & q)
{
return q.f==q.r?true:false;
}
bool DUILIE::isfull(QUEUE & q)
{
if(q.r==MAX-1)
return true;
else
return false;
}
int DUILIE::head(QUEUE & q)
{
if(isempty(q))
{
cout<<"此隊列為空!!"<<endl;
}
else
{
return q.data[q.f+1];
}
}
bool DUILIE::pop(QUEUE & q,int & val)
{
if(isempty(q))
return false;
else
{
val=q.data[++q.f];
return true;
}
}
bool DUILIE::push(QUEUE & q,int val)
{
if(isfull(q))
return false;
else
{
q.data[++q.r]=val;
return true;
}
}
void DUILIE::SHOW(QUEUE & q)
{
if(isempty(q))
cout<<"此隊列為空!!"<<endl;
else
{
for(int i=q.f+1; i<=q.r; i++)
cout<<q.data[i]<<" ";
cout<<endl;
}
}
實驗效果如如下:

老規矩,有錯改之,無則加勉。
一起學習,一起進步。
去吃飯了哈哈。
因為我的代碼是貼上去的 而不是寫的 居然說不足150字不讓發布
以下是湊字數的,忽略忽略;
山不在高,有仙則名。水不在深,有龍則靈。斯是陋室,惟吾德馨。苔痕上階綠,草色入簾青。談笑有鴻儒,往來無白丁。可以調素琴,閱金經。無絲竹之亂耳,無案牘之勞形。南陽諸葛廬,西蜀子雲亭。孔子雲:何陋之有?
