• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Co oznaczają poszczególne linie kodu?

0 głosów
279 wizyt
pytanie zadane 10 grudnia 2018 w C i C++ przez Metarinda Użytkownik (740 p.)

Witam.

Mam problem ze zrozumieniem co oznaczają posczególnie linie kodu. Kolega nie za bardzo umiał wyjaśnić.

BSTNode * BST::remove(BSTNode * x) //!!!!!
{
	BSTNode * y = x->p, *z;

	if ((x->left) && (x->right))
	{
		z = (rand() % 2) ? remove(pred(x)) : remove(succesor(x));  //przypisz do "z" wartości z wyrażenia remove(pred(x)) jesli wyrażennie (rand%2) jest prawdziwe w przeciwnym razie przypisz watość z wyrażenia remove (succ)
		z->left = x->left;   if (z->left)  z->left->p = z;
		z->right = x->right; if (z->right) z->right->p = z;
		count++;
	}
	else z = (x->left) ? x->left : x->right;

	if (z) z->p = y;

	if (!y) root = z;
	else if (y->left == x) y->left = z; else y->right = z;

	count--;
	return x;
}

chciałabym wiedzić co robią poszczególne linijki.

1 odpowiedź

+1 głos
odpowiedź 10 grudnia 2018 przez j23 Mędrzec (195,220 p.)
Poczytaj sobie opis algorytmu usuwania elementu z drzewa BST, to Ci się nieco rozjaśni ów kod.

Podobne pytania

0 głosów
1 odpowiedź 494 wizyt
0 głosów
1 odpowiedź 357 wizyt
pytanie zadane 9 grudnia 2019 w JavaScript przez Nowicjusz13 Użytkownik (570 p.)
0 głosów
2 odpowiedzi 2,265 wizyt

93,607 zapytań

142,529 odpowiedzi

322,999 komentarzy

63,097 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...