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

Wstawianie cyfry do listy

Object Storage Arubacloud
0 głosów
97 wizyt
pytanie zadane 11 listopada 2022 w Java przez ZiBi312 Nowicjusz (150 p.)

Cześć, mam problem z rozwiązaniem teoretycznie prostego zadania. Tzn. Stwórz dynamiczną tablicę, pobieraj cyfrę od użytkownika i dla elementu n (index) przypisz cyfrę do lewego dziecka 2n + 1 lub prawego 2n + 2. Generalnie chodzi o przypisanie cyfrze podanej przez użytkownika, odpowiednie miejsce w liście i wyświetlaniu jej, poniżej kod który udało mi się napisać

ArrayList<Integer> tab = new ArrayList<Integer>();
 Scanner scanner = new Scanner(System.in);

for (;;) {

    System.out.println("Wprowadz cyfe: ");
    int n = scanner.nextInt();
    tab.add(n);

    if (n < tab.size()) {
        if (n == tab.get(2*n) + 1) {
            tab.add(n + 1);

        }
        else if (n == tab.get(2*n) + 2) {
            tab.add(n + 2);

        }
    }
    System.out.println(tab);
}

Będe wdzięczny za podpowiedzi, złamało mnie to zadanie

1
komentarz 11 listopada 2022 przez Wiciorny Ekspert (270,170 p.)
zadanie musis w ogóle rozwiązać w oparciu o  graf/drzewo binarne ... nie w ten sposób co robisz Bo lista segreguje elementy w odp. kolejnosci więc totalnie źle podchodzisz do prolbemu.

1 odpowiedź

+1 głos
odpowiedź 11 listopada 2022 przez Wiciorny Ekspert (270,170 p.)
wybrane 14 listopada 2022 przez ZiBi312
 
Najlepsza
 if (n < tab.size())

Co ma na celu sprawdzenie na samym początku, że dodana liczba - > jest równa wielkości tablicy. To nigdy nie bedzie prawdziwe, chyba że podasz wartość 1

Nie masz stworzyć Listy... a dynamiczną tablcie. Generalnie masz stworzyć "tablice/ale bardziej implementacje listy wskaźnikowej" jak już się upierasz a nie korzystać z javowej. Masz stworzyć klasę która reprezentuje strukturę/tablice( bo w javie raczej to będzie struktura reprezentująca coś na wgląd listy wskaźnikowej) WIĄZANĄ - opartą o wskaźniki.. na tej podstawie określić prawe i lewe dziecko i na podstawie drzewa dodawać elementy.
struktura ma stworzyć drzewo binarne dokładnie ... i zadanie nie jest trywialne. Jest dosyć proste, ale wymaga znajomości - tez warto wiedzieć czym różni się GRAF od drzewa binarnego, bo akurat dla przypadku potomków prawych i lewych to będzie drzewo binarne bardziej niż graf 

- drzewa binarnego i jego wlasnosci, tworzenia listy/tablicy wskaźnikowej z reprezentacją wezła "node" wskaxnikami na prawe i lewe) poddrzewo itp. . 

Przykład inteferjsu NodeList dla implementacji klas dla listy Wskaźnikowej listy https://docs.oracle.com/javase/7/docs/api/org/w3c/dom/NodeList.html 
 

Podobne pytania

0 głosów
1 odpowiedź 251 wizyt
pytanie zadane 30 maja 2021 w Java przez cba Użytkownik (620 p.)
0 głosów
2 odpowiedzi 267 wizyt
pytanie zadane 31 sierpnia 2017 w Java przez LukasHardwares Początkujący (490 p.)
0 głosów
1 odpowiedź 482 wizyt
pytanie zadane 23 września 2018 w Java przez czmyk Obywatel (1,100 p.)

92,575 zapytań

141,424 odpowiedzi

319,650 komentarzy

61,961 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...