c_cpp 队列 - C ++中的链接列表实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 队列 - C ++中的链接列表实现相关的知识,希望对你有一定的参考价值。

// Queue - Linked List Implementation
#include<iostream>

using namespace std;

class Node
{
public:
    int data;
    Node *next;
};

class Queue
{
    Node *head;
    Node *tail;
    Node *prev;
    Node *temp;
    bool isEmpty()
    {
        return head == NULL;
    }
public:
    Queue()
    {
        head = NULL;
        tail = NULL;
    }

    void enqueue(int x)
    {
        temp = new Node;
        temp->data = x;
        temp->next = NULL;
        if(isEmpty())
        {
            head = temp;
            tail = temp;
        }
        else
        {
            prev = tail;
            tail->next = temp;
            tail = temp;
        }
    }

    void dequeue()
    {
        temp = head;
        head = head->next;
        delete temp;
    }

    void find(int x)
    {
        int i;
        for(i=1, temp = head;temp->next != NULL && temp->data != x;temp = temp->next, i++);
        if(temp->data == x)
        {
            cout << "Found at position:" << i << endl;
        }
        else if(temp->next == NULL)
        {
            cout << "Error: Number Not found..." << endl;
        }
    }

    void display()
    {
        if(!isEmpty())
        {
            for(temp = head; temp != NULL; temp=temp->next)
                cout << temp->data << " ";
            cout << endl;
        }
        else
        {
            cout << "Queue is Empty!" << endl;
        }
    }
};

int main()
{
    Queue q;
    q.display();
    q.enqueue(15);
    q.display();
    q.enqueue(25);
    q.display();
    q.enqueue(35);
    q.display();
    q.enqueue(45);
    q.display();
    q.find(15);
    q.dequeue();
    q.display();
    q.dequeue();
    q.display();
    q.dequeue();
    q.display();
}

以上是关于c_cpp 队列 - C ++中的链接列表实现的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp C ++中的队列数组实现

c_cpp 237.删除链接列表中的节点

c_cpp 搜索链接列表中的元素(迭代和递归)

c_cpp 237.删除链接列表中的节点 - 简单-2018.82

c_cpp 交换链接列表中的节点而不交换数据

c_cpp 编写一个函数以获取链接列表中的第N个节点