sowamaciej

Untitled

Jun 13th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. // ConsoleApplication2.cpp: definiuje punkt wejścia dla aplikacji konsolowej.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <stdlib.h>
  6. #include <iostream>
  7. using namespace std;
  8.  
  9. struct Node {
  10. int value;
  11. Node *next;
  12. Node *prev;
  13. };
  14.  
  15. Node * create(int value) { //tworzymy pierwszy element naszej listy (HEAD)
  16. Node * node = (Node *)malloc(sizeof(Node));
  17. node->value = value;
  18. node->next = node;
  19. node->prev = node;
  20. return node;
  21. }
  22. void add(Node *root, int value) {
  23. Node *node = create(value);
  24. if (root->next == root && root->prev == root) { //jeden element
  25. root->next = node;
  26. root->prev = node;
  27. node->next = root;
  28. node->prev = root;
  29. }
  30. else {
  31. Node *iterator = root->next;
  32. while (iterator != root->prev) {
  33. iterator = root->next;
  34. }
  35. root->prev = node;
  36. iterator->next = node;
  37. node->prev = iterator;
  38. node->next = root;
  39. }
  40. }
  41. void print(Node *root) {
  42. Node * iterator = root;
  43. do {
  44. cout << iterator->value<<" ";
  45. iterator = iterator->next;
  46. } while (iterator != root);
  47. }
  48. int main()
  49. {
  50. Node * root = create(9);
  51. add(root, 5);
  52. add(root, 10);
  53. //cout << root->next->next->value;
  54. print(root);
  55. getchar();
  56. return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment