Drzewo binarne BST. LABORKA Piotr Ciskowski

Podobne dokumenty
Wyszukiwanie w BST Minimalny i maksymalny klucz. Wyszukiwanie w BST Minimalny klucz. Wyszukiwanie w BST - minimalny klucz Wersja rekurencyjna

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Każdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste.

. Podstawy Programowania 2. Drzewa bst - część druga. Arkadiusz Chrobot. 12 maja 2019

Wykład 2. Drzewa zbalansowane AVL i 2-3-4

Wysokość drzewa Głębokość węzła

Wykład 8. Drzewa AVL i 2-3-4

Wykład X. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2016 Janusz Słupik

Drzewa poszukiwań binarnych

ALGORYTMY I STRUKTURY DANYCH

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium 7. 2 Drzewa poszukiwań binarnych

Podstawy Informatyki. Metody dostępu do danych

Drzewa wyszukiwań binarnych (BST)

Tadeusz Pankowski

Drzewo. Drzewo uporządkowane ma ponumerowanych (oznaczonych) następników. Drzewo uporządkowane składa się z węzłów, które zawierają następujące pola:

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Programowanie obiektowe i C++ dla matematyków

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.

Struktury danych: stos, kolejka, lista, drzewo

Lista liniowa dwukierunkowa

Drzewa czerwono-czarne.

Wykład 6. Drzewa poszukiwań binarnych (BST)

Listy, kolejki, stosy

Porządek symetryczny: right(x)

Algorytmy i Struktury Danych

Wykład 2. Drzewa poszukiwań binarnych (BST)

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >

Drzewa BST i AVL. Drzewa poszukiwań binarnych (BST)

Struktury Danych i Złożoność Obliczeniowa

PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew

Sortowanie bąbelkowe

Programowanie obiektowe i C++ dla matematyków

ALGORYTMY I STRUKTURY DANYCH

. Podstawy Programowania 2. Drzewa bst - część pierwsza. Arkadiusz Chrobot. 22 maja 2016

Wstęp do programowania. Drzewa podstawowe techniki. Piotr Chrząstowski-Wachtel

Przypomnij sobie krótki wstęp do teorii grafów przedstawiony na początku semestru.

Algorytmy i Struktury Danych.

Algorytmy i Struktury Danych

Algorytmy i struktury danych. wykład 5

Drzewa binarne. Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0. jest drzewem binarnym Np.

Matematyka dyskretna - 7.Drzewa

WSTĘP DO INFORMATYKI. Drzewa i struktury drzewiaste

Wstęp do programowania

Drzewa poszukiwań binarnych

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Teoretyczne podstawy informatyki

ALGORYTMY I STRUKTURY DANYCH

Algorytmy i Struktury Danych

STRUKTURY DANYCH I ZŁOŻONOŚĆ OBLICZENIOWA STRUKTURY DANYCH I ZŁOŻONOŚĆ OBLICZENIOWA. Część 3. Drzewa Przeszukiwanie drzew

Programowanie obiektowe - zadania

Teoretyczne podstawy informatyki

Programowanie obiektowe

Programowanie obiektowe

Podstawy Informatyki. Wykład 6. Struktury danych

dr inż. Paweł Myszkowski Wykład nr 11 ( )

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski

Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz

Zadanie projektowe nr 1

Struktura drzewa w MySQL. Michał Tyszczenko

Dziedziczenie jednobazowe, poliformizm, tablice wskaźników na obiekty

Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego.

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

7a. Teoria drzew - kodowanie i dekodowanie

Definicja pliku kratowego

Bazy danych. Andrzej Łachwa, UJ, /15

liniowa - elementy następują jeden za drugim. Graficznie możemy przedstawić to tak:

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Typy danych. 2. Dane liczbowe 2.1. Liczby całkowite ze znakiem i bez znaku: 32768, -165, ; 2.2. Liczby rzeczywiste stało i zmienno pozycyjne:

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

Wykład 3. Drzewa czerwono-czarne

Poprawność semantyczna

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

Twój wynik: 4 punktów na 6 możliwych do uzyskania (66,67 %).

Plan wykładu. Klucz wyszukiwania. Pojęcie indeksu BAZY DANYCH. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów.

Sortowanie. Bartman Jacek Algorytmy i struktury

Bazy danych - BD. Indeksy. Wykład przygotował: Robert Wrembel. BD wykład 7 (1)

Aplikacje w środowisku Java

Wykład 8 - Drzewa i algorytmy ich przetwarzania

Zasady programowania Dokumentacja

7. Teoria drzew - spinanie i przeszukiwanie

Warto też w tym miejscu powiedzieć, że w C zero jest rozpoznawane jako fałsz, a wszystkie pozostałe wartości jako prawda.

Algorytmy i struktury danych

> C++ wskaźniki. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki 26 kwietnia 2017

Drzewa podstawowe poj

PODSTAWY INFORMATYKI wykład 6.

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania

INFORMATYKA. Podstawy programowania w języku C. (Wykład) Copyright (C) 2005 by Sergiusz Sienkowski IME Zielona Góra

Dynamiczne drzewa. Piotr Sankowski. - p. 1/27

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Struktura danych. Sposób uporządkowania informacji w komputerze. Na strukturach danych operują algorytmy. Przykładowe struktury danych:

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Dynamiczne drzewa. Marian M. Kędzierski. 26 listopada Wstęp Euler-Tour Trees Dynamiczna spójność Algorytm Dinica Link-Cut Trees

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

a) 7 b) 19 c) 21 d) 34

BAZY DANYCH. Microsoft Access. Adrian Horzyk OPTYMALIZACJA BAZY DANYCH I TWORZENIE INDEKSÓW. Akademia Górniczo-Hutnicza

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe

Algorytmy sortujące i wyszukujące

Transkrypt:

Drzewo binarne BST LABORKA Piotr Ciskowski

zadanie 1. drzewo binarne - 1 Zaimplementuj drzewo binarne w postaci: klasy Osoba przechowującej prywatne zmienne: liczbę całkowitą to będzie klucz, wg którego będziemy potem wstawiać, usuwać, wyszukiwać elementy w drzewie imię osoby klasy Wierzcholek przechowującej: wskaźnik do obiektu klasy Osoba wskaźnik do lewego poddrzewa wskaźnik do prawego poddrzewa dla wygody niech one będą publiczne klasy Drzewo przechowującej: wskaźnik do korzenia - prywatny

zadanie 1. drzewo binarne - 2 Zaimplementuj niezbędne metody w klasie Osoba: konstruktor / destruktor metody dostępowe dla pól Zaimplementuj niezbędne funkcje klasy Wierzcholek: konstruktor destruktor funkcję zwracającą dane przechowywane w wierzchołku - jako tekst: liczbę (klucz), a za nią imię w nawiasie Zaimplementuj konstruktor drzewa ustawiający korzeń na NULL

zadanie 1. drzewo binarne - 3 W klasie Drzewo zaimplementuj funkcję wyszukującą wierzchołek z obiektem o podanym kluczu: jako parametr przyjmuje wartość klucza (int) zwraca wskaźnik na znaleziony wierzchołek lub NULL wykonuje wyszukiwanie binarne po znalezieniu wierzchołka o podanym kluczu funkcja main będzie mogła wyświetlić nie tylko klucz, ale też inne dane, u nas: imię osoby siedzącej na danym wierzchołku

zadanie 1. drzewo binarne - 4 W klasie Drzewo zaimplementuj funkcję wstawiającą wierzchołek z obiektem o podanym kluczu i imieniu: jako parametr przyjmuje wartość klucza (int) oraz łańcuch z imieniem lub cały obiekt do wstawienia - ta funkcja niech tylko wstawia do drzewa - o imię i klucz niech się spyta funkcja main - lub funkcja wypełniająca drzewo wieloma wierzchołkami (pyta się lub losuje) co robi: znajduje odpowiednie miejsce do wstawienia - prawie jak przy wyszukiwaniu - ale gdy dojdziemy do NULL, to nie wychodzimy, tylko wstawiamy nowy wierzchołek - jeśli znajdziemy wierzchołek o tej samej wartości, traktujemy go jak większy od wstawianego pamięta wskaźnik do rodzica aktualnego wierzchołka - gdy już znajdziemy miejsce (aktualny wierzchołek będzie wskazywał na NULL), to musimy wiedzieć, w którym miejscu drzewa się znajdujemy dołącza nowy wierzchołek w miejsce lewego potomka rodzica (gdy rodzic nie ma lewego) lub prawego gdy rodzic nie ma prawego potomka

zadanie 1. drzewo binarne - 4 Wstawianie wierzchołka przedstawia rysunek: rysunek: R. Lafore. Poznaj Struktury danych i algorytmy C++ w 24 godziny

zadanie 1. drzewo binarne - 5 W klasie Drzewo zaimplementuj funkcję dokonującą obchodu drzewa czyli odwiedzającą (i wyświetlającą) wszystkie wierzchołki: niech funkcja dokona obchodu zwykłego we wzrastającym porządku co ma robić: wywołać się w celu obejścia swojego lewego poddrzewa odwiedzić (wyświetlić) siebie wywołać się w celu obejścia swojego prawego poddrzewa Kolejne elementy drzewa będą wtedy wyświetlane po kolei

zadanie 1. drzewo binarne 5 - dodatkowe Kolejne elementy drzewa mogą być wyświetlane po kolei Albo mogą być wyświetlane podobnie jak w drzewie genealogicznym - przykładowe drzewo wyświetlane przez program mogłoby wyglądać tak: 27 (Leoś) 13 (Lulu) --- 26 (Wacław) 33 (Zdzisław) 63 (Piotrek) 80 (Teosia) 51 (Ola) 70 (Tomek) 92 (Edek) 58 (Czesław) --- --- 82 (Dizel5) --- 57 (Lara) 60 (Klara)

zadanie 1. drzewo binarne - 6 W klasie Drzewo zaimplementuj funkcje znajdujące element o minimalnej / maksymalnej wartości klucza: chwila zastanowienia i okazuje się, że obie te funkcje są bardzo łatwe

zadanie 1. drzewo binarne 7 dodatkowe W klasie Drzewo zaimplementuj funkcję usuwającą element o zadanym kluczu: najpierw trzeba znaleźć element do usunięcia wierzchołek bez potomków wystarczy usunąć wierzchołek o jednym potomku przyłączyć potomka do rodzica usuwanego wierzchołka wierzchołek o dwóch potomkach w jego prawym poddrzewie trzeba znaleźć wierzchołek o najmniejszej wartości klucza lub w jego lewym poddrzewie wierzchołek o największej wartości klucza trzeba go usunąć ale zanim się usunie, to jego obiekt trzeba przepisać do usuwanego wierzchołka ładnie jest to wyjaśnione tu: http://edu.pjwstk.edu.pl/wyklady/asd/scb/asd07/main07_p5.html