Advertisement
Guest User

Untitled

a guest
Mar 24th, 2019
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.81 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct element{
  5. int value;
  6. element *prev;
  7. element *next;
  8.  
  9. element(){
  10. value = 69;
  11. prev = nullptr;
  12. next = nullptr;
  13. }
  14.  
  15.  
  16.  
  17. };
  18.  
  19. struct list{
  20. element *tail;
  21. element *head;
  22. int length;
  23.  
  24.  
  25. list(){
  26. element * elem1 = new element;
  27.  
  28. tail = elem1;
  29. head = elem1;
  30.  
  31. length = 1;
  32.  
  33. }
  34. int getValueAt(int pos){
  35. int counter = pos;
  36. element *elem2 = head;
  37. while( elem2->next != nullptr){
  38. if(counter == 0){
  39. break;
  40. }
  41. counter--;
  42. elem2 = elem2->next;
  43.  
  44. }
  45. return elem2->value;
  46. }
  47. void addTail(int value){
  48. element * elem2 = head;
  49.  
  50. while( elem2->next != nullptr){
  51. elem2 = elem2->next;
  52. }
  53. element * elem3 = new element;
  54. elem2->next = elem3;
  55. elem3->prev = elem2;
  56. elem3->value = value;
  57. }
  58.  
  59. void printHead(){
  60. element * elem2 = head;
  61. int counter = 0;
  62.  
  63. while(true){
  64. cout << "pos: " << counter << " val: " << elem2->value << endl;
  65. elem2 = elem2->next;
  66. counter++;
  67. if( elem2->next == nullptr){
  68. cout << "pos: " << counter << " val: " << elem2->value << endl;
  69. break;
  70. }
  71.  
  72. }
  73.  
  74.  
  75. }
  76. void remove(int pos){
  77. int counter = pos;
  78. element *elem2 = head;
  79. while( true){
  80. if(counter == 0){
  81. break;
  82. }
  83. counter--;
  84. elem2 = elem2->next;
  85.  
  86. }
  87.  
  88. if(elem2->prev != nullptr){
  89. elem2->prev->next = elem2->next;
  90. }
  91. if(elem2->next != nullptr){
  92. elem2->next->prev = elem2->prev;
  93. }
  94.  
  95. cout << "removed: pos: " << pos << "val: " << elem2->value << endl;
  96. delete elem2;
  97. //delete
  98.  
  99.  
  100.  
  101. }
  102.  
  103. };
  104.  
  105.  
  106. int main(){
  107. list list1 = * new list();
  108.  
  109. list1.addTail(70);
  110. list1.addTail(71);
  111.  
  112.  
  113.  
  114. list1.printHead();
  115. list1.remove(1);
  116. //cout << list1.getValueAt(1);
  117. list1.printHead();
  118.  
  119.  
  120.  
  121. return 0;
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement