資源簡介
鏈隊列(欠判隊空操作)
主函數部分純屬測試
部分內容:
Status InitQueue (LinkQueue &Q); // 構造一個空隊列Q
Status EnQueue (LinkQueue &Q,QElemType e) ;// 插入元素e為Q的新的隊尾元素
Status DeQueue (LinkQueue &Q,QElemType &e);// 刪除Q的隊頭元素
Status DestroyQueue(LinkQueue &Q); // 銷毀隊列Q
int QueueLength(LinkQueue Q);// 求隊列的長度
Status GetHead(LinkQueue Q,QElemType &e);//取隊頭元素
Status QueueTraverse(LinkQueue Q);//遍歷
代碼片段和文件信息
#include?
#include?
using?namespace?std;
typedef?int?QElemType;
typedef?int?Status;
typedef?struct?QNode
{
QElemType??????data;
struct?QNode?*next;
}QNode*QueuePtr;
typedef?struct
{
QueuePtr??front;
QueuePtr??rear;
}linkQueue;
#define?OVERFLOW?-2
#define?OK?1
#define?ERROR?0
#define?TRUE?1
#define?FALSE?0
Status?InitQueue?(linkQueue?&Q);?//?構造一個空隊列Q
Status?EnQueue?(linkQueue?&QQElemType?e)?;//?插入元素e為Q的新的隊尾元素
Status?DeQueue?(linkQueue?&QQElemType?&e);//?刪除Q的隊頭元素
Status?DestroyQueue(linkQueue?&Q);?//?銷毀隊列Q
int?QueueLength(linkQueue?Q);//?求隊列的長度
Status?GetHead(linkQueue?QQElemType?&e);//取隊頭元素
Status?QueueTraverse(linkQueue?Q);//遍歷
?
int?main()
{
int?i;
QElemType?e;
linkQueue?Q;
InitQueue(Q);
for(i=1;i<10;i++)EnQueue(Qi);
QueueTraverse(Q);
QueueLength(Q);
cout<<“隊列長度為:“< DeQueue?(Qe);
GetHead(Qe);
cout<<“刪除隊頭元素后的隊頭元素為:“< DestroyQueue(Q);
return?0;
}
Status?InitQueue?(linkQueue?&Q)?//?構造一個空隊列Q
{
???Q.front?=?Q.rear?=(QueuePtr)malloc(sizeof(QNode));
???if?(!Q.front)?exit?(OVERFLOW);//存儲分配失敗
???Q.front->next?=?NULL;
???return?OK;
}
?Status?EnQueue?(linkQueue?&QQEle
評論
共有 條評論