队列

来源:互联网 发布:淘宝怎么提高浏览量 编辑:程序博客网 时间:2024/06/04 20:14
#include <iostream>#include <stdlib.h>using namespace std;class LinkQueue;class ListNode{friend class LinkQueue;private:int data;ListNode *link;ListNode(){ link = NULL; }};class LinkQueue{public:ListNode *head,*tail;int qsize;int *elements;LinkQueue() { head = tail = NULL; }~LinkQueue() { Clear(); }void PushTail(int x);bool PopFront();void Clear();int IsEmpty() { return head == NULL; }int DeleteQueue();};void LinkQueue::PushTail(int x){ListNode *p = new ListNode;p ->data = x;if(tail != NULL){p ->link = NULL;tail ->link = p;tail = p;}else{p ->link = NULL;tail = p;head = p;}}bool LinkQueue::PopFront(){ListNode *p;int x;if(head){x = head ->data;p = head;head = head ->link;delete p;qsize--;}else{return false;}}int LinkQueue::DeleteQueue(){ListNode *q = head;head = q->link;int y = q->data;delete q;return y;}void LinkQueue::Clear(){while(PopFront()){}head = tail = NULL;}int main(void){LinkQueue q1,q2;for(int i=0;i<20;i++){int x = rand()%100;cout<<x<<" ";if(x%2 == 1) { q1.PushTail(x); }else { q2.PushTail(x); }}cout<<endl;while(!q1.IsEmpty()&&!q2.IsEmpty()){cout<<q1.DeleteQueue()<<" "<<q2.DeleteQueue()<<endl;}cout<<endl;system("PAUSE");return 0;}

0 0
原创粉丝点击