1、queue是队列,队列应有queue_node,queue两部分组成,前者是节点的意思。
在动态管理内存的时候,注意利用new和delete这两个语句。
队列的元素个数不能用tail_ptr - head_ptr 来获取,因为不同于数组连续存储,队列的存储是随机的,头尾指针相减得到的是一个随机值!!!(不能得到长度)
2、queue.h代码如下:
注意:头文件中一般只能定义函数和类类型,如果定义变量,会被视作函数,通常会发生重定义的问题,故尽量不要再头文件中定义变量!
#ifndef QUEUE_H
#define QUEUE_H
class queue_node
{
friend class queue;//要把queue变成queue_node的友元才能使queue访问queue_node的private标签下的元素
public:
queue_node();
private:
int data;
queue_node *next_ptr;
};
class queue
{
public:
queue();// constructor
int length_max;
int num() {return num_;}
void enqueue(int);
void dequeue();
const int first() const { return head_ptr->data; };
const int last() const { return tail_ptr->data; };