Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- struct element{
- int value;
- element *prev;
- element *next;
- element(){
- value = 69;
- prev = nullptr;
- next = nullptr;
- }
- };
- struct list{
- element *tail;
- element *head;
- int length;
- list(){
- element * elem1 = new element;
- tail = elem1;
- head = elem1;
- length = 1;
- }
- int getValueAt(int pos){
- int counter = pos;
- element *elem2 = head;
- while( elem2->next != nullptr){
- if(counter == 0){
- break;
- }
- counter--;
- elem2 = elem2->next;
- }
- return elem2->value;
- }
- void addTail(int value){
- element * elem2 = head;
- while( elem2->next != nullptr){
- elem2 = elem2->next;
- }
- element * elem3 = new element;
- elem2->next = elem3;
- elem3->prev = elem2;
- elem3->value = value;
- }
- void printHead(){
- element * elem2 = head;
- int counter = 0;
- while(true){
- cout << "pos: " << counter << " val: " << elem2->value << endl;
- elem2 = elem2->next;
- counter++;
- if( elem2->next == nullptr){
- cout << "pos: " << counter << " val: " << elem2->value << endl;
- break;
- }
- }
- }
- void remove(int pos){
- int counter = pos;
- element *elem2 = head;
- while( true){
- if(counter == 0){
- break;
- }
- counter--;
- elem2 = elem2->next;
- }
- if(elem2->prev != nullptr){
- elem2->prev->next = elem2->next;
- }
- if(elem2->next != nullptr){
- elem2->next->prev = elem2->prev;
- }
- cout << "removed: pos: " << pos << "val: " << elem2->value << endl;
- delete elem2;
- //delete
- }
- };
- int main(){
- list list1 = * new list();
- list1.addTail(70);
- list1.addTail(71);
- list1.printHead();
- list1.remove(1);
- //cout << list1.getValueAt(1);
- list1.printHead();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement