fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. struct Node {
  4. int data;
  5. Node* prev;
  6. Node* next;
  7. };
  8. int main() {
  9. Node* head = new Node{10, NULL, NULL};
  10. head->next = new Node{20, head, NULL};
  11. head->next->next = new Node{30, head->next, NULL};
  12. head->next->next->next = new Node{40, head->next->next, NULL};
  13.  
  14. int pos = 0;
  15. int value = 25;
  16. if(pos == 0) {
  17. Node* newNode = new Node{value, NULL, head};
  18. head->prev = newNode;
  19. head = newNode;
  20. }
  21. else {
  22. Node* temp = head;
  23. int i = 0;
  24. while(i < pos-1 && temp->next != NULL) {
  25. temp = temp->next;
  26. i++;
  27. }
  28. Node* newNode = new Node{value, temp, temp->next};
  29. if(temp->next != NULL) {
  30. temp->next->prev = newNode;
  31. }
  32. temp->next = newNode;
  33. }
  34. Node* t = head;
  35. while(t != NULL) {
  36. cout << t->data << " ";
  37. t = t->next;
  38. }
  39.  
  40. return 0;
  41. }
  42.  
Success #stdin #stdout 0.01s 5324KB
stdin
Standard input is empty
stdout
25 10 20 30 40