回 帖 发 新 帖 刷新版面

主题:[讨论]求一C++入门问题

class Queue{
    struct Node{
        int elem;
        Node * next;
    };
    public:
           void Init();
           void EnQueue(int);
           int DelQueue();
           int GetLength(){return length;}
           void Print();
           
    private:
            Node * elemHead,*elemTail;
            int length;
            Node * creatNode (int );
}
#include<iostream.h>

void Queue::Init(){
                elemHead=NULL;
                elemTail=NULL;
                length=0;
  }
  
  
  Queue::Node *Queue::creatNode(int val){
                     Node *pNew=new Node;
                     if(pNew=NULL){
                       cout<<"memory insufficient!";
                       return NULL;
                     }
                     else{
                     pNew->elem=val;
                     pNew->next=NULL;
                     return pNew;
                     }
  }
  
  void Queue::EnQueue(int newElem){
                Node *pNew=creatNode(newElem);
                if(pNew==NULL)
                    return ;
              else{
                    if(elemTail==NULL)
                       elemTail=elemHead=pNew;
                  else{
                  elemTail->next=pNew;
                  elemTail=pNew;
                  }
              }
               length++;
  }
                
  int Queue::DelQueue(){
               int ret=elemHead->elem;
               Node *pDel=elemHead;
               elemHead=elemHead->next;
               delete pDel;
               length--;
               return ret;
  }
  
  void Queue::Print(){
                Node* pNode=elemHead;
                cout<<"Queue:";
                while(pNode!=NULL){
                        cout<<pNode->elem<<" ";
                        pNode=pNode->next;
                }
                cout<<endl;
  }



编译说是Init()有错误.哪位大虾指教一下

回复列表 (共3个回复)

沙发

类的大括号末尾要加;的!加上分号就可以通过编译了
还有你的程序没有main函数

板凳

谢谢.没注意哦!

3 楼

不过还是不能通过哦.
我把Init()换了个名字就能通过了.不知道是怎么回事哦.难道是编译器的问题吗?

我来回复

您尚未登录,请登录后再回复。点此登录或注册