有人可以告诉我为什么我在以下代码中遇到总线错误10。
下面的代码使用循环链表实现了一个队列。
我将3和5插入列表中,然后从前面删除三次。我也处理过拐角案件。
谢谢, Priyam Dhanuka
#include<iostream>
using namespace std;
class Node
{
public:
int val;
Node *next;
Node(int val)
{
this->val = val;
this->next = this;
}
};
void Enqueue(Node **rear, int val)
{
Node * newNode = new Node(val);
if((*rear) == NULL)
{
*rear = newNode;
return;
}
Node *front = (*rear)->next;
(*rear)->next = newNode;
newNode->next = front;
*rear = newNode;
}
int Dequeue(Node **rear)
{
if((*rear) == NULL)
return -1;
if((*rear)->next == (*rear))
{
int val = (*rear)->val;
delete(*rear);
*rear = NULL;
return val;
}
Node *temp = (*rear)->next;
Node *front = temp->next;
int val = temp->val;
(*rear)->next = front;
delete(temp);
return val;
}
int main()
{
Node *head;
Enqueue(&head, 3);
Enqueue(&head, 5);
cout<<Dequeue(&head)<<endl;
cout<<Dequeue(&head)<<endl;
cout<<Dequeue(&head)<<endl;
return 0;
}