Skip to content

Instantly share code, notes, and snippets.

@dizzi
Created August 13, 2010 21:23
Show Gist options
  • Save dizzi/523566 to your computer and use it in GitHub Desktop.
Save dizzi/523566 to your computer and use it in GitHub Desktop.
#include <iostream>
using namespace std;
class Element {
Element * next;
Element * prev;
int value;
public:
Element() {
value = 0;
prev = NULL;
next = NULL;
}
;
Element(int value, Element* prev) {
this->value = value;
this->prev = prev;
this->next = NULL;
}
int getValue() {
return value;
}
void getValueText() {
cout << "Getting value: " << value << endl;
}
Element* getPrev() {
return prev;
}
Element* getNext() {
return next;
}
void setPrev(Element* prev) {
this->prev = prev;
}
void setNext(Element* next) {
this->next = next;
}
};
void listElements(Element & first) {
Element * current = &first;
while (current->getNext() != NULL) {
current->getValueText();
current = current->getNext();
}
}
void insertElement(Element & first, int position) {
Element * current = &first;
while (current->getNext() != NULL) {
if (current->getValue() == position) {
Element * intruder = new Element(666, current);
intruder->setNext(current->getNext());
current->setNext(intruder);
break;
}
current->getValueText();
current = current->getNext();
}
}
int main() {
Element first;
Element * last;
last = &first;
for (int i = 1; i <= 10; i++) {
Element * current = new Element(i, last);
last->setNext(current);
last = current;
}
listElements(first);
cout << "-------------" << endl;
insertElement(first, 3);
cout << "-------------" << endl;
listElements(first);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment