2 jameshuang2002q jameshuang2002q 于 2015.05.27 19:48 提问

链表队列出错请大家帮忙看看好吗

#include
using namespace std;

typedef char DataType;
typedef struct QueueNode{
DataType data;
QueueNode*next;
};
typedef struct Queue{
QueueNode*front;
QueueNode*rear;
};

bool IsEmpty(Queue* a){
if (a->front == NULL&&a->rear == NULL){
return true;
}
return false;

}
void addQueueNode(Queue*&a, DataType data){
QueueNode* mNode;
if (a->front == NULL&&a->rear == NULL){
mNode = new QueueNode;
mNode->data = data;
mNode->next = NULL;
a->front = mNode;
a->rear = mNode;
}
else{
mNode = new QueueNode;
mNode->data = data;
mNode->next = NULL;
a->rear->next = mNode;
a->rear = mNode;
}
}
DataType deleteQueueNode(Queue*a){
if (a->front == NULL&&a->rear == NULL){
return NULL;
}
if (a->front == a->rear){
DataType mData = a->front->data;
QueueNode*mstr = a->front;
a->front = NULL;
a->rear = NULL;
delete[]mstr;
return mData;
}
else{
QueueNode*mstr = a->front;
a->front = a->front->next;
DataType mData = mstr->data;
delete[]mstr;
return mData;
}

}

int main(){

Queue *a = new Queue;
a->front == NULL;
a->rear == NULL;
addQueueNode(a, 'A');
addQueueNode(a, 'B');
addQueueNode(a, 'B');
cout << deleteQueueNode(a) << endl;
system("PAUSE");
return 0;

}
求解错误出在哪里 如何改正 为什么出错

1个回答

wsh1992o
wsh1992o   Rxr 2015.05.27 19:53

把错误代码弄出来看看~

wsh1992o
wsh1992o 回复jameshuang2002q: 。。。。那些全是内存地址,内存地址是一直变的,这谁能知道是什么。你看下是不是哪里读了空地址了。
2 年多之前 回复
jameshuang2002q
jameshuang2002q 0x00F84D8B 处有未经处理的异常(在 Queue.exe 中): 0xC0000005: 写入位置 0xCDCDCDD1 时发生访问冲突。
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片