队列的原理
队列是一种遵循先进先出,后进后出的数据结构
tip:只有队头和队尾能被外界访问,因此不允许有遍历行为。
队列的实现
#include<iostream>
using namespace std;
class Queue
{
struct Node
{
int nVal;
Node* pNext;
};
private:
Node* pHead = NULL;
Node* pEnd = NULL;
public:
void Push(int n);
int Pop();
};
int main()
{
Queue que;
que.Push(1);
que.Push(2);
que.Push(3);
cout << que.Pop() << endl;
cout << que.Pop() << endl;
cout << que.Pop() << endl;
Queue que1;
que1.Push(1);
que1.Push(2);
que1.Push(3);
cout << que1.Pop() << endl;
cout << que1.Pop() << endl;
cout << que1.Pop() << endl;
}
void Queue::Push(int n)
{
Node* pTemp = new Node;
pTemp->nVal = n;
pTemp->pNext = NULL;
if (NULL == pHead)
{
pHead = pTemp;
}
else
{
pEnd->pNext = pTemp;
}
pEnd = pTemp;
}
int Queue::Pop()
{
if (pHead != NULL)
{
Node* pDel = pHead;
pHead = pHead->pNext;
int n = pDel->nVal;
delete pDel;
if (NULL == pHead)
{
pEnd = NULL;
}
return n;
}
return -1;
}
如图,我们便简单实现了一个队列,