Skip to content
Snippets Groups Projects
linkedlist.h 737 B
Newer Older
#ifndef __LINKEDLIST_H__
#define __LINKEDLIST_H__

#include "node.h"
#include <string>

typedef enum {
    OK ,
    HeadNull,
    TailNull,
    HeadPrevious,
    HeadNextNull,
    TailNext,
    TailPreviousNull,
    HeadTail,
    IncorrectLink
} ListStatus ;

template <class T>
class LinkedList {
private:
    Node<T>* head;
    Node<T>* tail;
    int quantity;
public:
    LinkedList(void);
    ~LinkedList(void);

    Node<T>* getHead(void);
    Node<T>* getTail(void);
    T get(int);
    int search(T);
    bool insertEnd(T);
    bool insertBegin(T);
    bool insert(int, T);

    T removeEnd(void);
    T removeBegin(void);
    T remove(int);
    void print(void);
    bool isEmpty(void);
    int getQuantity(void);
};