Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用链表实现队列_C++ - Fatal编程技术网

C++ 使用链表实现队列

C++ 使用链表实现队列,c++,C++,队列是使用链表实现的:但是程序不工作,可能出现什么错误 #include<iostream> #include<conio.h> using namespace std; struct node { int data; node *next; }; class queue { node *front, *rear; public: queue() { front=rear=NULL; } vo

队列是使用链表实现的:但是程序不工作,可能出现什么错误

#include<iostream>
#include<conio.h>

using namespace std;

struct node
{
    int data;
    node *next;
};


class queue
{
    node *front, *rear;
public:
    queue()
    {
        front=rear=NULL;
    }
    void insert_in_queue();
    void delete_in_queue();
    void display_queue();
};

void queue:: insert_in_queue()
{
    node *ptr;
    ptr= new node;
    cout<<"\nInsert element\n";
    cin>>ptr->data;

    if(rear==NULL)
        front=rear=ptr;
    else
    {   rear->next=ptr;
        rear=ptr;
    }
}

void queue:: delete_in_queue()
{
    node *ptr;
    ptr=front;
    if(rear==NULL)
        cout<<"\nUnderflow!!\n";
    else if(front==rear)
        front=rear=NULL;
    else
        front=front->next;
    cout<<"\nThe deleted element is:: "<<ptr->data<<"\n";
    delete ptr;
}

void queue:: display_queue()
{
    node *ptr;
    ptr=front;
    cout<<"\nThe queue is:\n";
    while(ptr!=NULL)
    {
        cout<<"|"<<ptr->data<<"|";
        ptr=ptr->next;
    }
}

void main()
{
    queue q;
    char ch;
    int a;
    ch='y';
    cout<<"this is dynamic que progream\n\n\n";
    do
    {
        cout<<"(1)->Insert / (2)->Delete\n";
        cin>>a;
        if(a==1)
            q.insert_in_queue();
        else
            q.delete_in_queue();
        q.display_queue();
        cout<<"\nContinue?(y/n)\n";
        cin>>ch;
    }while(ch=='y');

    cout<<"\nThe final queue is:\n";
    q.display_queue();
    system("pause");

}
#包括
#包括
使用名称空间std;
结构节点
{
int数据;
节点*下一步;
};
类队列
{
节点*前,*后;
公众:
队列()
{
前=后=零;
}
void insert_in_queue();
void delete_in_queue();
无效显示队列();
};
无效队列::在队列()中插入队列
{
节点*ptr;
ptr=新节点;
coutptr->data;
如果(后==NULL)
前=后=ptr;
其他的
{后->下一步=ptr;
后部=ptr;
}
}
无效队列::删除队列()中的队列
{
节点*ptr;
ptr=前部;
如果(后==NULL)

cout在
insert_In_queue()
函数中,为
ptr
分配内存后,确保使用

ptr->next=NULL;

使用a找出出错的地方。dibugger运行程序,但程序在执行期间停止。如何继续?如何继续?你用调试器逐行检查代码,每一步都查看变量,直到你的代码执行了你意想不到的操作。不知怎的,我不明白这就是为什么我在后面问你节点的<代码>下< /COD>指针应始终为NULL。此外,考虑将构造函数添加到<代码>节点< /代码>中,它总是空代码<代码>下< /代码>,因此您不能忘记。