Kap.12. Flervegssøketre. Studerer 2-3 og 2-4 trær. Sist oppdatert

Like dokumenter
Kap 9 Tre Sist oppdatert 15.03

Fra Kap.10 Binære søketre (BS-tre) Sist oppdatert Definere en abstrakt datastruktur binært søketre. Vise hvordan binær søketre kan brukes

Balanserte binære søketrær

INF2220: Forelesning 2

INF2220: Forelesning 2. Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7)

Repetisjon: Binære. Dagens plan: Rød-svarte trær. Oppgave (N + 1)!

Definisjon av binært søketre

INF2220: Forelesning 2

INF2220: Gruppe me 2. Mathias Lohne Høsten 2017

Lars Vidar Magnusson

Definisjon: Et sortert tre

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2

Definisjon. I et binært tre har hver node enten 0, 1 eller 2 barn

Selv-balanserende søketrær

Algoritmer og datastrukturer Kapittel 9 Delkapittel 9.2

Binære Søketre. Egenskap. Egenskap : Grafisk. Egenskap : Kjøretid. Egenskap : Kjøretid. Egenskap : Oppsumering. Binære Søketre

... Når internminnet blir for lite. Dagens plan: Løsning: Utvidbar hashing. hash(x) katalog. O modellen er ikke lenger gyldig ved

Flerveis søketrær og B-trær

PG4200 Algoritmer og datastrukturer Forelesning 7

Binære søketrær. En ordnet datastruktur med raske oppslag. Sigmund Hansen

Trær. Består av sammenkoblede noder Hver node har 0 eller flere barne-noder. Må være asyklisk. Et tre med n noder har n-1 kanter.

Et eksempel: Åtterspillet

Binære trær: Noen algoritmer og anvendelser

Oppgave 1 LØSNINGSFORSLAG. Eksamen i INF desember Betrakt følgende vektede, urettede graf:

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.4

Heap og prioritetskø. Marjory the Trash Heap fra Fraggle Rock

Enkle datastrukturer. Lars Greger Nordland Hagen. Introduksjon til øvingsopplegget og gjennomgang av python

EKSAMENSOPPGAVE. INF-1101 Datastrukturer og algoritmer. Adm.bygget, rom K1.04 og B154 Ingen

Dagens plan: INF Algoritmer og datastrukturer. Repetisjon: Binære søketrær. Repetisjon: Binære søketrær

INF110 Algoritmer og datastrukturer TRÆR. Vi skal i denne forelesningen se litt på ulike typer trær:

Lars Vidar Magnusson

INF2220: Time 4 - Heap, Huffmann

Løsningsforslag. Oppgave 1.1. Oppgave 1.2

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2

Binær heap. En heap er et komplett binært tre:

Ny/utsatt EKSAMEN. Dato: 5. januar 2018 Eksamenstid: 09:00 13:00

Et eksempel: Åtterspillet

Object [] element. array. int [] tall

Trær. En datastruktur (og abstrakt datatype ADT)

Notater til INF2220 Eksamen

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.1

EKSAMEN med løsningsforslag

INF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel )

INF Algoritmer og datastrukturer

Heap* En heap er et komplett binært tre: En heap er også et monotont binært tre:

Binære søketrær. Et notat for INF1010 Stein Michael Storleer 16. mai 2013

Sist gang (1) IT1101 Informatikk basisfag. Sist gang (2) Oppgave: Lenket liste (fysisk) Hva menes med konseptuelt og fysisk i forb med datastrukturer?

KONTINUASJONSEKSAMEN

Et eksempel: Åtterspillet

EKSAMEN. Dato: 28. mai 2018 Eksamenstid: 09:00 13:00

Lars Vidar Magnusson Kapittel 13 Rød-Svarte (Red-Black) trær Rotasjoner Insetting Sletting

INF2220: Time 12 - Sortering

Kap.8 Sortering og søking sist oppdatert 16.03

Algoritmer og datastrukturer Eksamen

Algoritmer og datastrukturer Assignment 11 Side 1 av 5

NITH PG4200 Algoritmer og datastrukturer Løsningsforslag Eksamen 4.juni 2013

UNIVERSITETET I OSLO

Algoritmer og Datastrukturer

Prioritetskøer. Binære heaper Venstrevridde heaper (Leftist) Binomialheaper Fibonacciheaper

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer

INF1010 siste begreper før oblig 2

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer

EKSAMEN. Algoritmer og datastrukturer

Algoritmer og datastrukturer Eksamen

Algoritmer og datastrukturer Løsningsforslag

Oppsummering. MAT1030 Diskret matematikk. Oppsummering. Oppsummering. Eksempel

Dagens tema. INF Algoritmer og datastrukturer. Binærtrær. Generelle trær

INF2220: Forelesning 1

E K S A M E N. Algoritmiske metoder I. EKSAMENSDATO: 11. desember HINDA / 00HINDB / 00HINEA ( 2DA / 2DB / 2EA ) TID:

Eksempel: Uttrykkstrær I uttrykkstrær inneholder bladnodene operander (konstanter, variable,... ), mens de interne nodene inneholder operatorer.

Hva er en algoritme? INF HØSTEN 2006 INF1020. Kursansvarlige Ragnar Normann E-post: Dagens tema

Flerveis søketrær og B-trær

Magnus Moan (Undertegnede) Enkle datastrukturer, trær, traversering og rekursjon

Algoritmer og Datastrukturer

Prioritetskøer. Prioritetskøer. Binære heaper (vanligst) Prioritetskøer

Algoritmer og Datastrukturer IAI 21899

INF1010 Rekursive metoder, binære søketrær. Algoritmer: Mer om rekursive kall mellom objekter Ny datastruktur: binært tre

Disjunkte mengder ADT

Hvorfor sortering og søking? Søking og sortering. Binære søketrær. Ordnet innsetting forbereder for mer effektiv søking og sortering INF1010 INF1010

Eksamen iin115 og IN110, 15. mai 1997 Side 2 Oppgave 1 Trær 55 % Vi skal i denne oppgaven se på en form for søkestrukturer som er spesielt godt egnet

INF2220: Forelesning 1

Algoritmer og Datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

LO118D Forelesning 12 (DM)

Datastrukturer. Stakker (Stacks) Hva er en datastruktur? Fordeler / Ulemper. Generelt om Datastrukturer. Stakker (Stacks) Elementære Datastrukturer

Eksamen i IN 110, 18. mai 1993 Side 2 Del 1 (15%) Vi skal se på prioritetskøer av heltall, der vi hele tiden er interessert i å få ut den minste verdi

IN Algoritmer og datastrukturer

Sist forelesning snakket vi i hovedsak om trær med rot, og om praktisk bruk av slike. rot. barn

MAT1030 Diskret matematikk

PG4200 Algoritmer og datastrukturer Forelesning 10

Rekursiv programmering

INF1020 Algoritmer og datastrukturer. Dagens plan

PG 4200 Algoritmer og datastrukturer Innlevering 2

INF1010 Binære søketrær ++

INF1020 Algoritmer og datastrukturer GRAFER

Løsningsforslag for Obligatorisk Oppgave 3. Algoritmer og Datastrukturer ITF20006

Kontinuasjonseksamen i fag SIF8010 Algoritmer og Datastrukturer Torsdag 9. August 2001, kl

UNIVERSITETET I OSLO

Transkript:

Kap.12 Flervegssøketre Sist oppdatert 12.04.10 Studerer 2-3 og 2-4 trær

Motivasjon n maks = antall elementer i et fullt binært tre med nivåer 0 k ; (en node har ett element) n maks = 2 0 + 2 1 + + 2 k = 2 k+1-1 (geometrisk rekke) Høyden h = log 2 n maks maksimalet nivåtallet. ; høyden er det La n maks = 16777215 i et fullt BS-tre. Det gir h = 23, altså kreves maks 24 sml av elementer på ulike nivå for å finne et bestemt element. 16-2

Motivasjon La oss lage et søketre der hver node har 255 elementer og 256 barn (Tre av orden 256). Vi kan utlede tilsvarende formel og finner at h = log 256 n maks, n maks = maks antall elementer Innsatt for n maks = 16777215 (255 + 255*256 + 255*256 2 = 16777215) får vi h = 2, altså kreves maks kun 3 besøk av noder for å finne et bestemt element (Husk: innenfor riktig node må vi igjen søke). 16-3

Flervegssøketre I et flervegssøketre, hver node kan ha flere enn to barn det er en spesiell ordnet relasjon mellom nodene i dette kapitlet studerer vi to versjoner av flevegssøketrær 2-3 trær 2-4 trær 16-4

2-3 Trær Et 2-3 tre er et flervegssøketre der hver node har null, to eller tre barn. En node med null eller to barn er kalt en 2-node. En node med null eller tre barn er kalt en 3-node. 16-5

2-3 Trær En 2-node inneholder ett element og har enten ingen eller to barn. -Elementene i venstre undertre er mindre enn elementet i 2-noden. -Elementene i høyre undertre er større eller lik elementet i 2 noden. 16-6

2-3 Trær En 3-node inneholder to elementer, ett kalt det minste og ett kalt det største. En 3-node har enten ingen barn eller tre barn. 16-7

2-3 Trær Hvis en 3-node har barn så gjelder Elementene i venstre undertre er mindre enn det minste elementet. Elementene i det midterste undertre er større eller lik det minste elementet mindre enn det største det største elementet Elementene i det høyre undertret er større eller lik det største elementet 16-8

2-3 Trær Alle bladene i et 2-3 tree er på samme nivå. Det vil si at et 2-3 tre er balansert. 16-9

FIGUR 12.1 Et 2-3 tre 16-10

Innsetting i et 2-3 tre All innsetting i et 2-3 tre foregår tar utgangspunkt i et blad For å sette inn det nye elementet kreves søking for å finne passende blad. Innsetting har tre tilfeller 1) Treet er tomt (det nye elementet blir roten til treet) 2) Innsettingspunktet er en 2-node 3) Innsettingspunktet er en 3-node 16-11

Innsetting i et 2-3 tre Tilfelle 1) Elementet settes inn i en ny 2-node som blir roten til treet. Tilfelle 2) Elementet settes inn i en 2-node (som etter innsetting blir en 3-node) Eksempel: Sette inn 27 16-12

Innsettingspunkt er en 3-node Ser på det det nye elementet sammen med de to gamle i sortert ordning 3-noden blir splittet i to 2-noder, en for det minste elementet og en for det største elementet Midtelementet flyttes opp et nivå dvs forfremmes 16-13

Forfremmelse av midtelement To tilfeller Foreldren på neste nivå er en 2-node. Foreldren på neste nivå er en 3-node. 16-14

Forfremmelse Forelderen er en 2-node. Midtelementet legges til i foreldernoden slik at den blir en 3-node Legger også til referanser til de to nye 2-nodene Eksempel: Setter inn 32 16-15

Forfremmelse Forelder er en 3-node Forelder blir splitta i to 2-noder og midtelementet forfremmes på nytt Dette kan gjentas helt til man kommer til en 2- node eller roten. Kommer man helt til roten og den også er en 3- node, blir roten splittet i to 2-noder. Man får en ny rot som er en 2-node og det er blitt et ekstra nivå i treet 16-16

FIGUR 12.4 Sette inn 57 2) Foreldren til 3-noden er en 3-node 16-17

FIGUR 12.5 Sette inn 25 2) Foreldren til 3-noden er en 3-node 16-18

Fjerne elementer fra et 2-3 tre Tre (hoved)tilfeller: 1) Elementet som skal fjernes er i et blad som er en 3-node. 2) Elementet som skal fjernes er i et blad som er en 2-node. 3) Elementet som skal fjernes er i en intern node. 16-19

Fjerne fra blad som er en 3-node - Fjerner elementet. Eksempel fjerne 51 16-20

Fjerne fra blad som er en 2-node Da oppstår en situasjon som kalles underflyt. Vi må rotere treet og/eller redusere treets høyde for å oppnå egenskapene til et 2-3 tree. Har 4 undertilfeller 16-21

Har en 3-node som søsken Hvis man sletter fra et venstrebarn, så - blir roten nytt venstrebarn - blir minste elementet i høyrebarnet ny rot Eksempel: slette 22 16-22

Har 2-node som søsken Ser på sletting i venstre undertre 1) Flytting: inorden-etterfølger til rot. Ny 2-node lages. Tidligere rot blir ny inorden-forgjenger. Ny 3-node lages. 2) Rotere det minste elementet i den nye 3-noden om foreldren. 16-23

Fjerne elementer fra et 2-3 tre Det tredje av disse undertilfellene har vi når ingen av bladene er 3-noder, men det fins interne noder som er 3-noder. I dette tilfellet kan vi omgjøre en intern 3-node til en 2-node og rotere det passende elementet fra den noden for å balansere treet. 16-24

FIGUR 12.9 Fjerne 55 2) Elementet som skal fjernes er i et blad som er en 2-node der foreldren er en 3-node. Omgjør denne 3-noden til 2-node ved å rotere det minste elementet (60) som vil bli venstre barn. 16-25

FIGUR 12.10 Slette 45 2) Elementet som skal fjernes er i et blad som er en 2-node. Kombinerer bladene med foreldre og søsken. 16-26

Fjerne element i internnode Elementet 30 fjernes ved rotasjon. Ny 2-node. Elementet 60 er i en intern node som er en 3-node. Erstatt med inorden-etterfølgeren og roterer det største elementet (55) om foreldren. Ny 2-node. 16-27

2-4 Tre 2-4 Trær ligner mye på 2-3 trær. En 4-node inneholder tre elementer og har enten ingen barn eller 4 barn. De samme egenskapene for ordning som for 2-3 trær. De samme tilfellene anvendes både for innsetting og fjerning av elementer som illustrereres på følgende lysark. 16-28

FIGUR 12.12 Innsetting i et 2-4 tre 16-29

FIGUR 12.13 Fjerning fra et 2-4 tre 16-30