#include<iostream>
using namespace std;
#define ok 1
#define error 0
//定义结构
typedef struct QNode {
int data;
struct QNode *next;
}QNode,*QueuePtr;
typedef struct {
QueuePtr front;
QueuePtr rear;
}LinkQueue;
//初始化
int Init(LinkQueue &Q){
Q.front = Q.rear = new QNode;
Q.front->next = NULL;
return ok;
}
//链队入队
int EnterQueue(LinkQueue &Q,int e){
QNode *p = new QNode;
p->data = e;
p->next = NULL;
Q.rear->next = p;
Q.rear = p;
return ok;
}
//出队
int DeQueue(LinkQueue &Q, int &e){
if(Q.front == Q.rear){
return error;
}
QNode *p = Q.front->next;
e = p->data;
Q.front->next = p->next;
//判断是否是最后一个节点
if(Q.rear == p){
Q.rear = Q.front;
}
delete p;
return ok;
}
//取对头元素
int GetHead(LinkQueue Q){
//队列不是空
if(Q.front != Q.rear){
return Q.front->next->data;
}
}
//遍历
void print(LinkQueue Q){
while(Q.front != Q.rear){
cout<<Q.front->next->data<<",";
Q.front = Q.front->next;
}
}
int main(){
int data;
LinkQueue Q;
Init(Q);
cout<<"----------入队----------\n";
for(int i=1; i<=5;i++){
EnterQueue(Q,i);
}
print(Q);
cout<<"\n----------出队----------\n";
DeQueue(Q,data);
cout<<"出队元素为: "<<data<<endl;
print(Q);
cout<<"队头元素为: "<<GetHead(Q)<<endl;
return 0;
}
链队.......
最新推荐文章于 2024-09-06 08:50:54 发布