本人在学数据结构--循环链表,源代码为实现一个循环链表,目前只定义了构造函数、dequeue()和enqueue()。其中dequeue()和enqueue()分别为删除和增加节点,当尝试调试enqueue(),出现了错误
#include
#ifndef CLQUEUE_H
#define CLQUEUE_H
typedef int QueueElement;
class CLQueue{
public:
CLQueue();
~CLQueue();
const CLQueue& operator= (const CLQueue& original);
CLQueue(const CLQueue& original);
bool empty();
void enqueue(QueueElement value);
void dequeue();
void front();
void diaplay();
private:
class Node{
public:
QueueElement data;
Node* next;
Node(QueueElement value, Node* link = 0) :data(value), next(link){}
};
typedef Node* NodePointer;
NodePointer myBack;
};
#endif
using namespace std;
#include"CLQueue.h"
CLQueue::CLQueue() :myBack(0){}
void CLQueue::enqueue(QueueElement value){
NodePointer newPtr = new CLQueue::Node(value);
if (empty()){
myBack->next = newPtr;
myBack = newPtr;
}
else{
newPtr->next = myBack->next;
myBack->next = newPtr;
myBack = newPtr;
}
}
void CLQueue::dequeue(){
if (!empty()){
CLQueue::NodePointer dePtr = myBack->next;
if (dePtr->next == dePtr)
myBack = 0;
else
myBack->next = dePtr->next;
delete dePtr;
}
else
cerr << "The CLQueue is empty\n";
}
bool CLQueue::empty(){
return myBack == 0;
}
using namespace std;
#include"CLQueue.h"
int main(){
CLQueue clq;
for (int i = 0; i < 5; i++)
clq.enqueue(i);
cout << "Enquue*******\n";
}
main.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall CLQueue::~CLQueue(void)" (??1CLQueue@@QAE@XZ),该符号在函数 "void __cdecl exercise8_3_8(void)" (?exercise8_3_8@@YAXXZ) 中被引用
1>E:\VC++\ADT\ADTch8\Debug\ADTch8.exe : fatal error LNK1120: 1 个无法解析的外部命令