Categorieën: Alle - funkcije - struktura - podaci

door Matija Kaniški 14 jaren geleden

343

Z4_MM_makaniski

Tento text se zaměřuje na různé aspekty implementace stromových struktur v programovacím jazyce C++. Popisuje dva hlavní způsoby implementace: pomocí polí a pomocí ukazatelů. Pro každý z těchto způsobů jsou definovány specifické soubory hlaviček, které obsahují potřebné funkce a algoritmy.

Z4_MM_makaniski

DEVC++

Funkcije

Binarno stablo
InitB(x,T)
DeleteB(n,T)

briše cvor n, a s njim i sve njegove potomke

CreateRightB(x,n,T)

dodaje x kao desno dijete cvora n

CreateLeftB(x,n,T)

dodaje x kao lijevo dijete cvora n

RootB(n,T)
ChangeLabelB(x,n,T)
LabelB(n,T)
RightChildB(n,T)

vraca desno dijete cvora n

LeftChildB(n,T)

vraca lijevo dijete cvora n

ParentB(n,T)
Opcenito binarno stablo
InitT(x,T)

inicijalizira stablo T s korijenom x

DeleteT(n,T)

brise cvor n i njegove potomke

ChangeLabelT(x,n,T)

mijenja oznaku cvora n u stablu T na vrijednost x

CreateT(x,n,T)

dodje x kao dijete cvora n

RootT(T)

vraca korijen stabla

LabelT(n,T)

vraca ozaku koja sadrzi cvor n

NextSiblingT(n,T)

vraca sljedeceg brata cvora n

FirstChildT(n,T)

vraca prvo dijete cvora n

ParentT(n,T)

vraca roditelja cvora n

Struktura podataka

Glavni program
MAIN.cpp
Implementacije
pomocu pokazivaca

bstablo_pokazivac.h

pomocu polja

bstablo_polje.h

"prvo dijete, sljedeci brat"

ostablo.h

Hijerarhija

Podređeni
Dijete
Nadređeni
Cvor koji ima jedno dijete je unutarnji cvor
Cvor koji nema dijete je list
Djeca istog cvora su braca

Slozenost

Implementacija pomocu pokazivaca
ParenB
Implementacija pomocu polja
Ostale funkcije

O(1)

DeleteB

O(n)

Elementi stabla

Potomak
Brat
Djeca
Roditelj
Cvor
List
Korijen

Algoritmi obilaska

Rekurzivno
Inorder
Postorder
Preorder