以順序存儲結構對隊列進行操作----入隊、出隊、打印並判斷隊列現有長度(以類的形式)
程序如下:
queue.h 頭文件
#pragma once
#include <iostream>
class queue
{
private:
int *data;
int tail, head, len; // head 用於刪除,tail 用於加入新元素
public:
queue(int input_len)
{
len = input_len;
data = new int[len];
head = 0;
tail = 0;
}
~queue()
{
delete []data;
}
void push(int element) ;//進隊列
int pop(); //出隊列
void print(); // 打印隊列
int lens (); //判斷隊列的長度
};
queue.cpp
#include "queue.h"
using namespace std;
void queue::push(int element)
{
if(tail < len)
{
tail ++;
data[tail] = element;
}
else
cout << "入隊列失敗,已經超出範圍" << endl;
}
int queue::pop()
{
if(head <= tail)
{
head++;
cout << "出隊列的數值是" << data[head] << endl;
return data[head];
}
else
cout <<"出隊列失敗" << endl;
}
void queue::print()
{
for(int num = head+1; num<=tail; num++)
cout << data[num] << endl;
cout << endl;
}
int queue::lens ()
{
cout << "lens = " << tail-head << endl;
return tail-head;
}
#include "queue.h"
int main()
{
queue que(10);
que.lens();
que.push(1);
que.push(2);
que.push(3);
que.lens();
que.print();
que.pop();
que.print();
system("pause");
return 0;
}