Welcome to W3Courses
 Like Us on Facebook

ADT Queue Source Code in C++

Following is the source code for an ADT Queue in C++

template <class Item>
class QUEUE
{
private:
    struct node
    {    Item item; node* next;
        node(Item x)
        { item = x; next = 0; }
    };
    typedef node *link;
    link head, tail;
    
void deletelist()
    {
        for (link t = head; t != 0; head = t)
        { t = head->next; delete head; }
    }
public:
    QUEUE(int)
        { head = 0;}
    
QUEUE(const QUEUE& rhs)
    {
head = 0;
*this = rhs;
}
    
QUEUE& operator=(const QUEUE& rhs)
    {
        if (this == &rhs)
            return *this;
        deletelist();
        link t = rhs.head;
        while (t != 0)
        {
            put(t->item);
            t = t->next;
        }
        return *this;
     }
    ~QUEUE()
    { deletelist(); }
    
int empty() const
    {
return head == 0;
}
    
void put(Item x)
    {    link t = tail;
        tail = new node(x);
        if (head == 0)
            head = tail;
        else
            t->next = tail;
    }
    
Item get()
    {    Item v = head->item;
link t = head->next;
        delete head;
head = t;
return v;
    }

Item front()
{
return head->item;
}
};

Share