队列,前后都未在范围内声明

时间:2013-12-13 17:48:01

标签: c++ queue declaration

我正在尝试创建一个Queue程序,但我不断收到错误,在此范围内未声明“front”和“rear”。谁能告诉我我做错了什么?这是我的代码。我将它与我编写的其他代码进行了比较,并且我已经以完全相同的方式声明了它们。

#include <iostream>
using namespace std;

class node{
  public:
    int data;
    node *next;
    node();
};

class que{
  public:
    node *front;
    node *rear;
    void enq(int a);
    void deq();
    void pq();
    que();
};

que::que(){
  front = NULL;
  rear = NULL;
}


node::node(){
  data = 0;
  next = NULL;
}

void enq(int a){
  node *temp;
  temp = new node;
  temp->data = a;
  if(front == NULL && rear == NULL){
    front = rear = temp;
  }
  else{
    rear->next = temp;
    rear = temp;
  }
}

void deq(){
  node *temp;
  temp = front;
  if(front == NULL)
    return;
  if(temp == rear)
    front = rear = NULL;
  else{
    temp = temp->next;
  }
  delete temp;
}

void pq(){
  node *curs;
  curs = front;
  if(front == NULL)
    return;
  while(1){
    cout << curs->data;
    if(curs->next == NULL)
      break;
    else
      curs=curs->next;
  }

}

int main(){

  que *Q = new que;

  return 0;
}

1 个答案:

答案 0 :(得分:3)

在您的代码中,您开始定义以下函数:

void pq(){

但这不是课程的一部分,你必须说:

void deq::pq(){