数据结构_链队列

来源:互联网 发布:淘宝宝贝上架图片尺寸 编辑:程序博客网 时间:2024/05/16 10:34
//LinkQueue.h#ifndef LinkQueue_H#define LinkQueue_H#define NULL 0struct Node{int data;Node* next;};class LinkQueue{public:LinkQueue();  //构造~LinkQueue();  //析构void Enqueue(int x);// 插入int DeQueue();  // 删除队首int GetQueue();  //取队首元素int Empty();  //判空操作private:Node* front;  //队首指针Node* rear;  //队尾指针};#endif;//LinkQueue.cpp#include "LinkQueue.h"LinkQueue::LinkQueue(){Node* s = NULL;s = new Node;s->next = NULL;front = rear = s;}LinkQueue::~LinkQueue(){Node* p = NULL;while(front!=NULL){p = front->next;delete front;front = p;}}void LinkQueue::Enqueue(int x){Node* s = NULL;s = new Node;s->data = x;s->next = NULL;rear->next = s; rear = s;}int LinkQueue::DeQueue(){Node* p = NULL;int x;if(rear == front) throw "下溢";p = front->next;x = p->data;front->next = p->next;if(p->next == NULL) rear = front;delete p;return x; }int LinkQueue::GetQueue(){if(front!=rear) return front->next->data;else return -(1<<30);  //错误标记}int LinkQueue::Empty(){if(front == rear) return 1;return 0;}//LinkQueue_main.cpp#include<iostream>using namespace std;#include "LinkQueue.h"int main(){LinkQueue Q;if(Q.Empty()) cout << "队列为空" << endl;else cout << "队列非空" << endl;cout << "元素10和15执行入队操作:" << endl;try{Q.Enqueue(10);Q.Enqueue(15);}catch(char* wrong){cout << wrong << endl;}cout << "查看队首元素" << endl;cout << Q.GetQueue() << endl;cout << "执行出队操作" << endl;try{Q.DeQueue();}catch(char* wrong) {cout << wrong << endl;}cout << "查看队首元素" << endl;cout << Q.GetQueue() << endl;return 0;}

0 0
原创粉丝点击