我在实现队列时遇到总线错误10

时间:2018-01-20 04:35:13

标签: c++ data-structures queue circular-list

有人可以告诉我为什么我在以下代码中遇到总线错误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;

}

0 个答案:

没有答案