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;
}
free full length porn
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
|
TopicsRecent blog posts
|