A Nice C++ Linked List

I had reason to brush up on my C/C++ skills a bit and did something I've wanted to do for some time: implemented a nice encapsulated linked list. Read more for the source.

#include <iostream>
#include <stdarg.h>

typedef unsigned char boolean;

class LinkedList {
  
  private:
    LinkedList *m_start, *m_curr, *m_next;
    int m_data;
  
  public:    
    /*Constructors*/
    LinkedList();
    LinkedList(LinkedList* );
    
    /*Operations*/
    void insert(int);   
    void insertMultiple(int count, ...);  
    int getData();
    int getDataEl();
    void setData(int);
    LinkedList* getNext();
    void setNext(LinkedList* );

    
    /*Movement*/
    void start();
    void next();
    void end();        
    void reset();
    
    /*Boolean*/
    boolean isEnd();
    boolean isEmpty();
    
};


LinkedList::LinkedList() {
  m_curr = m_start = this;
  m_next = NULL;
}

LinkedList::LinkedList(LinkedList* start) {
  m_start = start;
  m_next = NULL;
}

void LinkedList::insert(int el) {
  m_curr->setData(el);
  m_curr->setNext(new LinkedList(m_start)); 
  m_curr = m_curr->getNext(); 
}

void LinkedList::insertMultiple(int count, ...) {
  va_list ap;
  va_start(ap, count);
  while(count--)     
    insert(va_arg(ap, int)); 
  va_end(ap);
}

int LinkedList::getDataEl() {
  return m_data;
}

int LinkedList::getData() {
  return m_curr->getDataEl();
}

void LinkedList::setData(int el) {
  m_data = el;
}

LinkedList* LinkedList::getNext() {
  return m_next;
}

void LinkedList::setNext(LinkedList* link) {
  m_next = link;
}

void LinkedList::next() {
  m_curr = m_curr->getNext();
}

boolean LinkedList::isEnd() {
  return m_curr->getNext() == NULL ? 1 : 0;
}

void LinkedList::reset() {
  m_curr = m_start;
}

int main() {
  LinkedList l;
  l.insertMultiple(3, 5, 6, 7); 
  for(l.reset(); !l.isEnd(); l.next()) 
    std::cout << l.getData();
    
  return 0;
}
Here's a doubly linked list version:


#include <iostream>
#include <stdarg.h>

typedef unsigned char boolean;

class LinkedList {
  
  private:
    LinkedList *m_curr, *m_next, *m_prev;
    int m_data;
  
  public:    
    /*Constructors*/
    LinkedList();
    LinkedList(LinkedList* );
    
    /*Operations*/
    void insert(int);   
    void insertMultiple(int count, ...);  

    /*Get Setters*/
    int getData();
    int getDataEl();
    void setData(int);
    LinkedList* getPrev();
    LinkedList* getNext();
    void setNext(LinkedList* );        
    
    /*Movement*/
    void reset();
    void prev();
    void next();
    void end();           
    
    /*Boolean*/
    boolean isBeginning();
    boolean isEnd();
    boolean isEmpty();
    
};


LinkedList::LinkedList() {
  m_curr = this;
  m_prev = NULL;
  m_next = NULL;
}

LinkedList::LinkedList(LinkedList* prev) {
  m_prev = prev;
  m_next = NULL;
}

void LinkedList::insert(int el) {
  while (m_curr->getNext() != NULL)
    m_curr = m_curr->getNext();
  m_curr->setData(el);
  m_curr->setNext(new LinkedList(m_curr));
}

void LinkedList::insertMultiple(int count, ...) {
  va_list ap;
  va_start(ap, count);
  while(count--)     
    insert(va_arg(ap, int)); 
  va_end(ap);
}

int LinkedList::getDataEl() {
  return m_data;
}

int LinkedList::getData() {
  return m_curr->getDataEl();
}

void LinkedList::setData(int el) {
  m_data = el;
}

LinkedList* LinkedList::getPrev() {
  return m_prev;
}

LinkedList* LinkedList::getNext() {
  return m_next;
}

void LinkedList::setNext(LinkedList* link) {
  m_next = link;
}

void LinkedList::reset() {
  m_curr = this;
}

void LinkedList::next() {
  m_curr = m_curr->getNext();
}

void LinkedList::prev() {
  m_curr = m_curr->getPrev();
}

boolean LinkedList::isEnd() {
  return m_curr->getNext() == NULL ? 1 : 0;
}

boolean LinkedList::isBeginning() {
  return m_curr == NULL ? 1 : 0;
}

boolean LinkedList::isEmpty() {
  return m_curr->getNext() == m_curr->getPrev() ? 1 : 0;
}

int main() {
  LinkedList l;
  l.insertMultiple(4, 5, 6, 7, 8); 

  for(; !l.isBeginning(); l.prev())
    std::cout << l.getData();
   
  return 0;
}

Submitted by Drugan888 on Mon, 2008-09-29 13:54.
free full length porn videos free lesbian porn videos free gay porn videos free teen porn videos free amateur porn videos free online porn videos free long porn videos free porn flash videos porn videos free free homemade porn videos free hardcore porn videos free porn movies free full length porn movies free gay porn movies free teen porn movies free full porn movies porn movies free free online porn movies free long porn movies free latin porn movies free mature porn movies free hardcore porn movies free porn clips free porn video clips free porn movie clips porn clips free free gay porn clips free lesbian porn clips free online porn clips free teen porn clips free porn videos trailers clips free streaming porn clips free amature porn clips free gay porn free gay porn movies free gay porn videos free gay porn clips free gay porn video free 15 minutes gay porn free gay black porn free black gay porn gay porn free free gay porn sites free gay porn pic post free young gay porn free gay porn galleries free gay porn pics free porn videos free porn video free massage porn video free porn video clips free full length porn videos free video porn free lesbian porn videos free gay porn videos free teen porn videos free amateur porn videos free online porn videos free long porn videos free porn flash videos porn videos free free homemade porn videos free hardcore porn videos free black porn videos free anime porn videos free cartoon porn videos free full porn videos free asian porn videos free amateur porn video free streaming porn videos free amatuer porn videos full free porn videos free longer porn video free gay porn video free milf porn video free amature porn videos long free porn videos free porn video sites porn video free free ebony porn videos free animal porn videos free celebrity porn videos free porn videos online mature porn milfs free video free pictures free mature porn videos free porn video downloads free xxx porn videos free hairy pussy porn video free porn videos free porn videos trailers clips free teen porn video free incest porn videos free young porn videos free lesbian porn free lesbian porn videos free lesbian porn movies free lesbian porn clips lesbian porn free free teen lesbian porn free black lesbian porn