Advertisement
Guest User

hcuj

a guest
Jan 24th, 2020
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.35 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3.  
  4. struct element {
  5.     int val = NULL;
  6.     element * left = nullptr, * right = nullptr;
  7. };
  8.  
  9. void wstaw(element * & el, const int & wart) {
  10.     if (!el->val)
  11.         el->val = wart;
  12.     else if (wart < el->val)
  13.         if (el->left == nullptr)
  14.             el->left = new element{ wart };
  15.         else wstaw(el->left, wart);
  16.     else if (wart >= el->val)
  17.         if (el->right == nullptr)
  18.             el->right = new element{ wart };
  19.         else wstaw(el->right, wart);
  20. }
  21.  
  22. // nie dziala jak el jest nie zainicjowany nie wiem czemu
  23. void wypisz(element * & el) {
  24.  
  25.     if (el == nullptr) return;
  26.  
  27.     if (el->left != nullptr)
  28.         wypisz(el->left);
  29.  
  30.     std::cout << el->val << " ";
  31.  
  32.     if (el->right != nullptr)
  33.         wypisz(el->right);
  34. }
  35.  
  36. element * szukaj(element * el, const int & wart) {
  37.     if (el == nullptr) return nullptr;
  38.  
  39.     if (el->val == wart)
  40.         return el;
  41.     else if (wart < el->val)
  42.         return szukaj(el->left, wart);
  43.     else
  44.         return szukaj(el->right, wart);
  45. }
  46.  
  47. void czysc(element * & el) {
  48.     if (el->left != nullptr)
  49.         czysc(el->left);
  50.  
  51.     if (el->right != nullptr)
  52.         czysc(el->right);
  53.  
  54.     delete el;
  55.  
  56. }
  57.  
  58. int main()
  59. {
  60.     element * el = new element;
  61.  
  62.     wstaw(el, 5);
  63.     wstaw(el, 33);
  64.     wstaw(el, -7);
  65.     wstaw(el, 14);
  66.     wstaw(el, 99);
  67.     wstaw(el, -99);
  68.     wstaw(el, 0);
  69.     wstaw(el, 42);
  70.     wypisz(el);
  71.     std::cout << std::endl << szukaj(el, -99) << std::endl;
  72.     czysc(el);
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement