AlgoPlus v0.1.0
Loading...
Searching...
No Matches
doubly_linked_list< T > Class Template Reference

doubly linked list class More...

#include <doubly_linked_list.h>

Classes

class  Iterator
 Iterator class. More...
 

Public Member Functions

 doubly_linked_list (std::vector< T > _elements={}) noexcept
 doubly_linked_list class constructor
 
 doubly_linked_list (const doubly_linked_list &l)
 copy constructor for the doubly_linked_list class
 
doubly_linked_listoperator= (const doubly_linked_list &l)
 operator = for doubly linked list class
 
bool empty ()
 empty function.
 
size_t size ()
 size function. Returns the size of the list.
 
Iterator begin ()
 pointer that points to begin
 
Iterator end ()
 pointer that points to end
 
bool search (T key)
 search function.
 
void push_back (T key)
 push_back function.
 
void push_front (T key)
 push_front function.
 
void erase (T key)
 erase function.
 
std::vector< T > elements ()
 elements function.
 
void reverse ()
 reverse function. reverses the linked list.
 
void visualize ()
 visualize function returns a .dot file that can be previewd with graphviz plugin in vscode
 

Friends

std::ostream & operator<< (std::ostream &out, doubly_linked_list< T > &l)
 << operator for the doubly_linked_list class.
 

Detailed Description

template<typename T>
class doubly_linked_list< T >

doubly linked list class

Constructor & Destructor Documentation

◆ doubly_linked_list() [1/2]

template<typename T >
doubly_linked_list< T >::doubly_linked_list ( std::vector< T > _elements = {})
inlineexplicitnoexcept

doubly_linked_list class constructor

Parameters
__elementsyou can provide the constructor with a vector of elements so you dont have to do multiple push backs yourself.

◆ doubly_linked_list() [2/2]

template<typename T >
doubly_linked_list< T >::doubly_linked_list ( const doubly_linked_list< T > & l)
inlineexplicit

copy constructor for the doubly_linked_list class

Parameters
lthe list we want to copy

Member Function Documentation

◆ begin()

template<typename T >
Iterator doubly_linked_list< T >::begin ( )
inline

pointer that points to begin

Returns
Iterator

◆ elements()

template<typename T >
std::vector< T > doubly_linked_list< T >::elements ( )

elements function.

Returns
vector<T>: the elements of the list.

◆ empty()

template<typename T >
bool doubly_linked_list< T >::empty ( )
inline

empty function.

Returns
true if the list is empty.

◆ end()

template<typename T >
Iterator doubly_linked_list< T >::end ( )
inline

pointer that points to end

Returns
Iterator

◆ erase()

template<typename T >
void doubly_linked_list< T >::erase ( T key)

erase function.

Parameters
keythe key to be erased from the list.

◆ operator=()

template<typename T >
doubly_linked_list & doubly_linked_list< T >::operator= ( const doubly_linked_list< T > & l)
inline

operator = for doubly linked list class

Parameters
lthe list we want to copy
Returns
doubly_linked_list&

◆ push_back()

template<typename T >
void doubly_linked_list< T >::push_back ( T key)

push_back function.

Parameters
keythe key to be pushed back.

◆ push_front()

template<typename T >
void doubly_linked_list< T >::push_front ( T key)

push_front function.

Parameters
keythe key to be pushed in front.

◆ search()

template<typename T >
bool doubly_linked_list< T >::search ( T key)

search function.

Parameters
keythe key to be searched.
Returns
true if key exists in the list.

The documentation for this class was generated from the following file: