2014-10-26 77 views
0

你好,我寫了下面的程序(隊列鏈表),但我有一個錯誤我無法弄清楚如何解決它,我會很高興,如果你幫我解決這個問題。與隊列LNK2005錯誤鏈表

這是我的問題的代碼和我得到3個錯誤:

錯誤1個錯誤LNK2005: 「結構節點*後」(?@@後@@ 3PAUNode A)在main.obj已經定義
錯誤2錯誤LNK2005: 「結構節點*前面」 已在main.obj定義 錯誤3錯誤LNK1169:一個或一個以上乘法定義的符號發現

碼 - (前@@ 3PAUNode @@ A 2)

queue.h

#ifndef _MYQUEUE_H 
#define _MYQUEUE_H 
#include <iostream> 

struct Node 
{ 
    int data; 
    Node* next; 
} *rear, *front; 


void enqueue(int element); 
void dequeue(); 

#endif 

主要

#include <iostream> 
#include "myQueue.h" 

int main() 
{ 
    Node *rear; 
    Node *front; 

    enqueue(7); 
    enqueue(4); 
    enqueue(9); 

    dequeue(); 
    dequeue(); 
    dequeue(); 

    system("pause"); 

    return 0; 
} 

queue.cpp

#include "myQueue.h" 

void enqueue(int element) 
{ 
    Node* temp = new Node; 
    temp->data = element; 
    temp->next = NULL; 

    if (front == NULL) 
    { 
     front = temp; 
    } 
    else 
    { 
     rear->next = temp; 
    } 
    rear = temp; 
} 

void dequeue() 
{ 
    Node* temp = new Node; 
    if (front == NULL) 
    { 
     std::cout << "No elements" << std::endl; 
    } 
    else 
    { 
     temp = front; 
     front = front->next; 
     std::cout << temp << std::endl; 
     delete temp; 
    } 
} 

回答

1

你有rear 2個申報和queue.h front指針

一個等在主要

刪除rear,並從主

front指針
int main() 
{ 
    //Node *rear; 
    //Node *front; 
    ..... 
} 

有在queue.h extern Node *rear, *front;並定義那些queue.cpp

Node *rear, *front; 
+0

很抱歉,但它仍然無法正常工作 – 0xAlon 2014-10-26 17:35:43

+0

@ user3742037什麼不工作?它現在說了什麼不同嗎? – P0W 2014-10-26 17:37:35

+0

沒有相同的問題 – 0xAlon 2014-10-26 17:39:12