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;
}
all free porn with email
Submitted by Drugan888 on Tue, 2008-09-30 12:29.
all free porn with email only
dvx film interi porn scarica
ashley massaro porn
cortos de porn
lesbain porn star
lesbian and shemale porn
redhead porn xxx
minnie mouse mickey porn
big cunt porn
carey mary porn video
abd porn
local college porn
carey free mary porn video
what does the bible say about pornography
disney lilo and stitch porn
galerias pornograficas
yugioh card porn
b movie porn
abduction porn
lesbian pink porn
lesbian porn big boob
gallery gay picture porn
lesbian porn star with toy
disney hill king porn
mmm porn
download free black porn
kissing lesbian movie porn
dream kelly porn star
gallery kickass porn star
disney free game porn
mirc porn channel
amateur sex porn video
gay porn star marc anthony
amateur porn sex video
amateur porn post thumbnail
amateur porn picture gallery
gay porn post video
gay porn hitchhiker
gay photo porn underwear wet
feces porn
amateur group porn
gay military porn russian
amateur gallery picture porn
kink porn
amateur free porn site web
dominican porn star
turkish porn site
gay hung porn star
gay erotic porn story
cheapest porn dvd
|
TopicsRecent blog posts
|