Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2017
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class Wierzcholek
  6. {
  7. public:
  8.  
  9. string klucz;
  10. Wierzcholek* ojciec;
  11. Wierzcholek* lsyn;
  12. Wierzcholek* psyn;
  13.  
  14. //if l i p = NULL to wierzch jest LISCIEM
  15.  
  16. Wierzcholek(string klucz)
  17. {
  18. ojciec=NULL;
  19. lsyn=NULL;
  20. psyn=NULL;
  21. this->klucz=klucz;
  22. }
  23.  
  24.  
  25. friend class Drzewo;
  26. };
  27.  
  28. class Drzewo
  29. {
  30. public:
  31.  
  32. Wierzcholek* korzen;
  33.  
  34. Drzewo()
  35. {
  36. korzen=NULL;
  37.  
  38. }
  39.  
  40. void inOrder(Wierzcholek* x)
  41. {
  42. if(x->lsyn!=NULL)
  43. {
  44. inOrder(x->lsyn);
  45. }
  46. cout<<x->klucz<<endl;
  47.  
  48. if(x->psyn!=NULL)
  49. {
  50. inOrder(x->psyn);
  51. }
  52.  
  53. }
  54.  
  55. void postOrder(Wierzcholek* x)
  56. {
  57. if(x->lsyn!=NULL)
  58. {
  59. postOrder(x->lsyn);
  60. }
  61.  
  62.  
  63. if(x->psyn!=NULL)
  64. {
  65. postOrder(x->psyn);
  66. }
  67. cout<<x->klucz<<endl;
  68. }
  69.  
  70. void preOrder(Wierzcholek* x)
  71. {
  72. cout<<x->klucz<<endl;
  73. if(x->lsyn!=NULL)
  74. {
  75. preOrder(x->lsyn);
  76. }
  77.  
  78.  
  79. if(x->psyn!=NULL)
  80. {
  81. preOrder(x->psyn);
  82. }
  83.  
  84. }
  85.  
  86.  
  87. };
  88.  
  89.  
  90.  
  91. int main()
  92. {
  93. /* 3 sposoby wyse=wietlania
  94. inOrder
  95. DBEAC od lewej do prawej??
  96. -preOrder
  97. ABDEC od gory po lewej, potem jeden w prawo i znowu do lewej
  98. -postOrder
  99. DEBCA
  100. */
  101.  
  102. Drzewo* drzewo = new Drzewo();
  103. Wierzcholek* a = new Wierzcholek("A");
  104. Wierzcholek* b = new Wierzcholek("B");
  105. Wierzcholek* c = new Wierzcholek("C");
  106. Wierzcholek* d = new Wierzcholek("D");
  107. Wierzcholek* e = new Wierzcholek("E");
  108.  
  109. drzewo->korzen = a;
  110. a->lsyn=b;
  111. a->psyn=c;
  112. b->ojciec=a;
  113. c->ojciec=a;
  114. b->lsyn=d;
  115. b->psyn=e;
  116. d->ojciec=b;
  117. e->ojciec=b;
  118.  
  119. drzewo->inOrder(drzewo->korzen);
  120. cout<<endl;
  121. drzewo->postOrder(drzewo->korzen);
  122. cout<<endl;
  123. drzewo->preOrder(drzewo->korzen);
  124. cout<<endl;
  125.  
  126.  
  127.  
  128.  
  129.  
  130. return 0;
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement