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 Fri, 2008-09-26 12:53.
free swinger exotic stories sexy swinger couple stories stories swinger party stories swinger sex swinger personal stories porn teen titans teen titans porn pink porn porn forum forum porn vanity shemale porn star vanity transexual porn vanity transsexual porn varda porn down loading porn down loading porn with davo down loading pornography vassar porn down low porn down on the farm porn vcd porno sma bandung 70s porn stars 70s porn movies 70s porn vedete porno vega vixen porn vegas porn star escorts vegas pornstar escorts 70's porno music ringtones 70's porn stars 70 year old porn vegetarian porn veggie porn down under porn veil porn 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 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