3 回答

TA貢獻1884條經驗 獲得超4個贊
這是我前幾天剛寫的,可能對你有幫助!(一個工程,自己看著操作吧?。?br/>文件名h:
template <class T> struct node
{ T data;
node *next;
};
template <class T> class linked_Queue //鏈隊列類
{ private: //數據成員
node<T> *front; //鏈隊列隊首指針
node<T> *rear; //鏈隊列隊尾指針
int n; //鏈隊列長度為n
public: //成員函數
linked_Queue(); //構造函數,建立空隊列,即隊列初始化
void prt_linked_Queue(); //順序輸出鏈隊列中的元素
int flag_linked_Queue(); //檢測鏈隊列的狀態
void ins_linked_Queue(T); //入隊
void del_linked_Queue(); //出隊,并打印輸出出隊元素值
};
文件名.cpp
#include <iostream.h>
#include "zah.h"
template <class T> linked_Queue<T>::linked_Queue()
{
front = NULL;
rear = NULL;
n = 0;
}
template <class T> void linked_Queue<T>::prt_linked_Queue()
{
node<T> *p;
p=front;
while(p!=0)
{
cout<<p->data<<endl;
p=p->next;
}
cout<<endl;
}
template <class T> int linked_Queue<T>::flag_linked_Queue()
{
if(front==NULL)
return 0;
return 1;
}
template <class T> void linked_Queue<T>::ins_linked_Queue(T x) //入隊
{
node<T> *p;
p=new node<T>;
p->data=x;
rear->next=p;
n++;
}
template <class T> void linked_Queue<T>::del_linked_Queue() //出隊
{
if(flag_linked_Queue()==0)
cout<<"隊列為空,無法輸出!"<<endl;
node<T> *p;
p=front;
front=front->next;
cout<<p->data<<"出隊"<<endl;
delete p;
n--;
}
void main()
{
linked_Queue<int> queue;
int x[5] = {1,2,3,4,5};
for(int i=0; i<5; i++)
queue.ins_linked_Queue(x[i]);
queue.prt_linked_Queue();
queue.del_linked_Queue();
queue.prt_linked_Queue();
queue.del_linked_Queue();
queue.del_linked_Queue();
queue.del_linked_Queue();
queue.prt_linked_Queue();
}
- 3 回答
- 0 關注
- 186 瀏覽
添加回答
舉報