3.3.3 链队
LinkQueue.h
#pragma once #include<iostream> using namespace std; class QueueNode { public: int data; QueueNode* next; }; class LinkQueue { public: QueueNode* front, * rear; LinkQueue() { front = nullptr; rear = nullptr; } bool IsEmpty() { return front == nullptr; } void EnQueue(int e) { QueueNode* s; s = new QueueNode(); s->data = e; s->next = nullptr; if (front == nullptr) { front = s; rear = s; } else { rear->next = s; rear = s; } } void DeQueue(int& e) { if (IsEmpty() == true) { cerr << "Empty!!!!" << endl; exit(1); } QueueNode* p = front; e = p->data; front = front->next; delete p; } };
main.cpp
#include"LinkQueue.h" int main() { LinkQueue L; int arr[] = { 1,2,3,4,5 }; for (int i = 0; i < 5; i++) { L.EnQueue(arr[i]); } int temp; while (!L.IsEmpty()) { L.DeQueue(temp); cout << temp << " "; } cout << endl; return 0; }

浙公网安备 33010602011771号