Skip to the content of the web site.

Lesson 5.6: A linked list class with a tail pointer member variable

This class expands on the previous linked list class by including a pointer to the list tail. This allows us to implement more functionality but also requires us to update any member functions that modified the linkked list.

class Linked_list {
    public:
        Linked_list();   // Constructor
       ~Linked_list();   // Destructor

        bool empty() const;
        std::size_t size() const;
        double front() const;
        double  back() const;
        std::string to_string() const;
        std::size_t find( double const value ) const;
        double operator[]( std::size_t const n ) const;

        void push_front( double const new_value );
        void push_back( double const new_value );
        Linked_list &operator+=( Linked_list const &list ) const;
        void pop_front();
        void clear();

    private:
        Node *p_list_head_; // Pointer to head node
        Node *p_list_tail_; // Pointer to tail node
        std:size_t size_;   // Number of nodes in the linked list
};

View this simple linked list at repl.it.

The class declarations and definitions are in the corresponding Linked_list.hpp file.