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

Program za kazdym razem wyswietla 16843009

+2 głosów
344 wizyt
pytanie zadane 11 lutego 2022 w C i C++ przez RufinB Bywalec (2,020 p.)
#include <iostream>
using namespace std;

class binary_tree {
public:
	int value;
	binary_tree* parent;
	binary_tree* left;
	binary_tree* right;
public:
	binary_tree(int d) :parent{ nullptr }, left{ nullptr }, right{ nullptr }, value{ d }{
	}
	bool add(int, string, int = 0);
	binary_tree* move2(string, int = 0);

};



int main()
{
	binary_tree tree(0);
	tree.add(1, "0");
	tree.add(2, "1");
	tree.add(3, "10");
	tree.add(4, "01");
	tree.add(5, "00");
	tree.add(6, "11");
	tree.add(7, "111");
	tree.add(8, "110");
	tree.add(9, "1110");
	tree.add(10, "1111");

	cout << (tree.move2("111"))->value << endl;


}

bool binary_tree::add(int v, string track, int index) {
	if (track.size() > 4 || track.size() == 0)
		return false;
	binary_tree*& next = (track[index] == '0' ? left : right);
	if (next && index == track.size() - 1)
		return false;
	else if (!next) {
		next = new binary_tree(v);
		next->parent = this;
		return true;
	}
	else
		next->add(v, track, index + 1);
}

binary_tree* binary_tree::move2(string track, int index) {
	binary_tree* next = (track[index] == '0' ? left : right);
	if (!next)
		return this;
	else if (next && (index == track.size() - 1))
		return next;
	else
		next->move2(track, index + 1);
}

 

komentarz 11 lutego 2022 przez Nelson89 Dyskutant (7,720 p.)
Cześć,

jak wrzucasz jakiś temat, to dobrze oprócz kodu, dodać opis szerszy opis: tego co robi Twój program i jakich efektów oczekujesz. Dodatkowo opis problemu, np. z czym sobie nie radzisz, czego nie rozumiesz, ewentualnie jakiej pomocy oczekujesz. A jak kompilator wyrzuca błąd, to oprócz kodu, oczywiście treść błędu.

Jak dodasz to do swojego zapytania, będziesz mieć większą szanse na uzyskanie odpowiedzi, która pomoże Ci uporać się z Twoim problemem.

Pozdrawiam,

Nelson89
komentarz 11 lutego 2022 przez RufinB Bywalec (2,020 p.)
program powinien wyswietlic wartosc kryjaca sie pod sciezka 111 w tej strukturze danych (linia 34) jak sprawdzam w debugerze to wartosci sa dobre natomias w wyniku pojawia sie caly czas wartosc podana w tytule
komentarz 11 lutego 2022 przez Oscar Nałogowiec (29,420 p.)

A nie dostajesz ostrzeżenia, że w ostatniej linijce kodu metoda move2 nic nie zwraca (brak return w gałęzi else lub na końcu)?

komentarz 11 lutego 2022 przez RufinB Bywalec (2,020 p.)
tak return zapomnialem postawic w lini 61 dzieki

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
3 odpowiedzi 665 wizyt
0 głosów
2 odpowiedzi 623 wizyt
pytanie zadane 17 maja 2016 w C i C++ przez Evelek Nałogowiec (28,960 p.)

93,743 zapytań

142,684 odpowiedzi

323,305 komentarzy

63,330 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...