Implementacja drzew binarnych w języku Python

master
dc.abstract.enbinarne drzewo poszukiwań, drzewo czerwono-czarne, drzewo AVL, drzewo splay, algorytm DSW, rotacje drzewa, przechodzenie drzewapl
dc.abstract.plW pracy przedstawiono implementację w języku Python wybranych rodzajów drzew binarnych. Opisano podstawowe operacje na binarnych drzewach poszukiwań, takie jak dodawanie nowego węzła, usuwanie węzła, wyszukiwanie elementu o danym kluczu, wyszukiwanie elementu o największym lub najmniejszym kluczu, wyszukiwanie następnika lub poprzednika danego elementu. Pokazano najważniejsze metody przechodzenia przez drzewo: inorder, preorder, postorder, poziomami.Binarne drzewa poszukiwań są podstawową strukturą używaną do zaimplementowania zbiorów dynamicznych, których elementy mają być wyszukiwane przez swój klucz. Operacje wyszukiwania są wydajne dla drzew zrównoważonych, ale nie zawsze tak musi być. Z tego powodu w pracy przedstawiono zmodyfikowane drzewa, z usprawnieniami poprawiającymi wydajność podstawowych operacji. Drzewa czerwono-czarne i drzewa AVL utrzymują się w postaci w przybliżeniu zrównoważonej dzięki dodatkowemu atrybutowi dołączonemu do węzła.Drzewa splay natomiast poprawiają dostęp do najczęściej używanych elementów przez przemieszczenie ich bliżej korzenia.W pracy został również zaprezentowany algorytm DSW, który każde binarne drzewo poszukiwań wydajnie sprowadza do postaci zrównoważonej. Dla czterech wymienionych rodzajów drzew przygotowano kod zarówno w podejściu obiektowym (hierarchie klas drzewowych), jak i w podejściu z funkcjami (zestawy funkcji przypominających pseudokod). Cały kod został pokryty testami jednostkowymi, dodano także testy porównujące zachowanie różnych rodzajów drzew.pl
dc.affiliationWydział Fizyki, Astronomii i Informatyki Stosowanejpl
dc.areaobszar nauk ścisłychpl
dc.contributor.advisorKapanowski, Andrzej - 100452 pl
dc.contributor.authorMatusiewicz, Ewelinapl
dc.contributor.departmentbycodeUJK/WFAISpl
dc.contributor.reviewerKapanowski, Andrzej - 100452 pl
dc.contributor.reviewerMarcinek, Roman - 100088 pl
dc.date.accessioned2020-07-27T12:00:19Z
dc.date.available2020-07-27T12:00:19Z
dc.date.submitted2017-10-24pl
dc.fieldofstudyinformatyka stosowanapl
dc.identifier.apddiploma-119461-129685pl
dc.identifier.projectAPD / Opl
dc.identifier.urihttps://ruj.uj.edu.pl/xmlui/handle/item/224453
dc.languagepolpl
dc.subject.enbinary search tree, red-black tree, AVL tree, splay tree, DSW algorithm, tree rotations, tree traversalpl
dc.subject.plPython implementation of selected binary trees is presented. Basic operations supported by binary search trees are described: insertion of a node, deletion of a node, searching for a specific key, finding minimum or maximum node, finding the successor or the predecessor of a current node. Main tree traversal methods are shown: inorder, preorder, postorder, level-order.Binary search trees are basic structures used to implement dynamic sets of items that allow finding an item by its key. Searching is efficient only for balanced trees but for real data a tree may become unbalanced. That is why three modified kinds of trees are also shown. Red-black trees and AVL trees use an additional node attribute to ensure that trees remain approximately balanced. Splay trees improve access to frequently used nodes, they are placed near the root of the tree.All source code has been covered by unit test scripts.pl
dc.titleImplementacja drzew binarnych w języku Pythonpl
dc.title.alternativePython implementation of binary treespl
dc.typemasterpl
dspace.entity.typePublication
dc.abstract.enpl
binarne drzewo poszukiwań, drzewo czerwono-czarne, drzewo AVL, drzewo splay, algorytm DSW, rotacje drzewa, przechodzenie drzewa
dc.abstract.plpl
W pracy przedstawiono implementację w języku Python wybranych rodzajów drzew binarnych. Opisano podstawowe operacje na binarnych drzewach poszukiwań, takie jak dodawanie nowego węzła, usuwanie węzła, wyszukiwanie elementu o danym kluczu, wyszukiwanie elementu o największym lub najmniejszym kluczu, wyszukiwanie następnika lub poprzednika danego elementu. Pokazano najważniejsze metody przechodzenia przez drzewo: inorder, preorder, postorder, poziomami.Binarne drzewa poszukiwań są podstawową strukturą używaną do zaimplementowania zbiorów dynamicznych, których elementy mają być wyszukiwane przez swój klucz. Operacje wyszukiwania są wydajne dla drzew zrównoważonych, ale nie zawsze tak musi być. Z tego powodu w pracy przedstawiono zmodyfikowane drzewa, z usprawnieniami poprawiającymi wydajność podstawowych operacji. Drzewa czerwono-czarne i drzewa AVL utrzymują się w postaci w przybliżeniu zrównoważonej dzięki dodatkowemu atrybutowi dołączonemu do węzła.Drzewa splay natomiast poprawiają dostęp do najczęściej używanych elementów przez przemieszczenie ich bliżej korzenia.W pracy został również zaprezentowany algorytm DSW, który każde binarne drzewo poszukiwań wydajnie sprowadza do postaci zrównoważonej. Dla czterech wymienionych rodzajów drzew przygotowano kod zarówno w podejściu obiektowym (hierarchie klas drzewowych), jak i w podejściu z funkcjami (zestawy funkcji przypominających pseudokod). Cały kod został pokryty testami jednostkowymi, dodano także testy porównujące zachowanie różnych rodzajów drzew.
dc.affiliationpl
Wydział Fizyki, Astronomii i Informatyki Stosowanej
dc.areapl
obszar nauk ścisłych
dc.contributor.advisorpl
Kapanowski, Andrzej - 100452
dc.contributor.authorpl
Matusiewicz, Ewelina
dc.contributor.departmentbycodepl
UJK/WFAIS
dc.contributor.reviewerpl
Kapanowski, Andrzej - 100452
dc.contributor.reviewerpl
Marcinek, Roman - 100088
dc.date.accessioned
2020-07-27T12:00:19Z
dc.date.available
2020-07-27T12:00:19Z
dc.date.submittedpl
2017-10-24
dc.fieldofstudypl
informatyka stosowana
dc.identifier.apdpl
diploma-119461-129685
dc.identifier.projectpl
APD / O
dc.identifier.uri
https://ruj.uj.edu.pl/xmlui/handle/item/224453
dc.languagepl
pol
dc.subject.enpl
binary search tree, red-black tree, AVL tree, splay tree, DSW algorithm, tree rotations, tree traversal
dc.subject.plpl
Python implementation of selected binary trees is presented. Basic operations supported by binary search trees are described: insertion of a node, deletion of a node, searching for a specific key, finding minimum or maximum node, finding the successor or the predecessor of a current node. Main tree traversal methods are shown: inorder, preorder, postorder, level-order.Binary search trees are basic structures used to implement dynamic sets of items that allow finding an item by its key. Searching is efficient only for balanced trees but for real data a tree may become unbalanced. That is why three modified kinds of trees are also shown. Red-black trees and AVL trees use an additional node attribute to ensure that trees remain approximately balanced. Splay trees improve access to frequently used nodes, they are placed near the root of the tree.All source code has been covered by unit test scripts.
dc.titlepl
Implementacja drzew binarnych w języku Python
dc.title.alternativepl
Python implementation of binary trees
dc.typepl
master
dspace.entity.type
Publication
Affiliations

* The migration of download and view statistics prior to the date of April 8, 2024 is in progress.

Views
305
Views per month
Views per city
Warsaw
71
Poznan
39
Krakow
18
Lublin
18
Wroclaw
18
Lodz
8
Kielce
6
Sokołów Podlaski
5
Tromsø
5
Ashburn
4

No access

No Thumbnail Available