数据结构学习三:队列

来源:互联网 发布:拼音输入法的编程语言 编辑:程序博客网 时间:2024/05/21 14:41

队列

     队列的基本操作有1,:Enqueue(入队),它是在表的末端即队尾rear插入一个元素;2:Dequeue(出队),它是删除在表头即队头(front)的元素。

#pragma once#include"node.h"class MyQueue{private:Node* m_Head;Node* m_Front;Node* m_Rear;public:MyQueue();~MyQueue();public:bool IsEmpty();void Enqueue(int data);void Dequeue();void ShowQueue();private:void initialize();};

#include "stdafx.h"#include "MyQueue.h"MyQueue::MyQueue(){initialize();}MyQueue::~MyQueue(){}bool MyQueue::IsEmpty(){if (m_Front == NULL || m_Rear == NULL || m_Head->Next == NULL){return true;}return false;}void MyQueue::Enqueue(int data){Node* p = new Node();p->Data = data;p->Next = NULL;Node* q = m_Rear;q->Next = p;m_Rear = p;if (q == m_Head){m_Front = p;}}void MyQueue::Dequeue(){if (IsEmpty()){return;}Node* p = m_Head;Node* q = m_Front;p->Next = q->Next;m_Front = q->Next;delete q;}void MyQueue::ShowQueue(){if (IsEmpty()){cout << "this queue is empty!" << endl;return;}cout << "this queue is (front to rear):" << endl;Node* p = m_Front;while (p!=NULL){cout << p->Data << " ";p = p->Next;}cout << endl;}void MyQueue::initialize(){m_Head = new Node();m_Head->Next = NULL;m_Front = m_Rear = m_Head;}


0 0
原创粉丝点击