带有队列LNK2005的链表错误



你好,我写了下面的程序(带linkedlist的队列),但我有一个错误,我不知道如何修复它,如果你帮我修复它,我会很高兴。

这是我的问题代码,我得到3个错误:

错误1错误LNK2005:"struct Node*rear"(?rear@@3PAUNode@@A)已在main.obj中定义
错误2错误LNK2005:"struct Node*front"(?front@@3PAUNode@@A)已在main.obj中定义错误3错误LNK1169:找到一个或多个多重定义符号

代码-

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;
    }
}

您有两个声明rearfront指针

一个在队列.h中,另一个在主中

从主中删除rearfront指针

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

在queue.h中有extern Node *rear, *front;,并在queue.cpp 中定义

Node *rear, *front;

相关内容

  • 没有找到相关文章

最新更新