#include<iostream> #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; typedef struct Qnode{ int data; Qnode *next; }Qnode,*Queue; typedef struct {//相当于一个结构体指针,同时指向前面和后面 Queue fronts; Queue rear; }LinkQueue; void init(LinkQueue &Q){//建立一个新的节点 Q.fronts=Q.rear=(Queue)malloc(sizeof(Qnode)); Q.fronts->next=NULL; return ; } void delete_queue(LinkQueue &Q,int e){//删除这个节点 while(Q.fronts){//要是头结点仍然存在那么继续往后删除 Q.rear=Q.fronts->next; free(Q.fronts); Q.fronts=Q.rear;//再次移动 } } void inqueue(LinkQueue &Q,int e){//相当于链表的一样 Queue p=(Queue)malloc(sizeof(Qnode)); p->data=e; p->next=NULL; Q.rear->next=p; Q.rear=p; } void dequeue(LinkQueue &Q,int &e){ if (Q.fronts==Q.rear)return; Queue p=Q.fronts->next; e=p->data; Q.fronts->next=p->next; if(Q.rear==p)Q.rear=Q.fronts; free(p); return ; } int main(){ LinkQueue a; init(a); int n,tmp; scanf("%d",&n); for (int i=1;i<=n;i++){ scanf("%d",&tmp); inqueue(a,tmp); } int s; for (int i=1;i<=n;i++){ dequeue(a,s); printf("%d\n",s); } return 0; }
队列的模板
猜你喜欢
转载自www.cnblogs.com/bluefly-hrbust/p/10188171.html
今日推荐
周排行