21
Träd och tillämpningar Data Structures & Problem Solving using Java -- Kapitel 19 , 12

Träd och tillämpningar

Embed Size (px)

DESCRIPTION

Träd och tillämpningar. Data Structures & Problem Solving using Java -- Kapitel 19 , 12. Implementation- noden. class BinaryNode{ private Object element; private BinaryNode left; private BinaryNode right; public BinaryNode( Object theElement, - PowerPoint PPT Presentation

Citation preview

Page 1: Träd och tillämpningar

Träd och tillämpningar

Data Structures & Problem Solving using Java

-- Kapitel 19 , 12

Page 2: Träd och tillämpningar

Implementation- noden

class BinaryNode{ private Object element; private BinaryNode left; private BinaryNode right; public BinaryNode( Object theElement, BinaryNode lt, BinaryNode rt){ element=theElement; left=lt; right=rt;}

}

elementleft

right

Page 3: Träd och tillämpningar

BinaryTree klassen

class BinaryTree{

}

private BinaryNod root;

public BinaryTree( Object item){root=new BinaryNode(item,null,null);

}

public BinaryTree(){root=null;

}

Page 4: Träd och tillämpningar

Tillämpning- Binära Sökträd(Vad är en sökträd?)

7

2

3

9

1151

Ett binärt träd där, för vilken som hälst nod i trädet alla noder som innehåller ett värde mindre än sin egen värde befinner sig i det vänsta delträdet och alla noder som innehåller ett värde som är större än sin värde befinner sig i det högra delträdet.

Page 5: Träd och tillämpningar

Är det ett sökträd?

7

2

3

9

1151

8

Page 6: Träd och tillämpningar

Operationer

Find() , findMin(), findMax() Insert() Remove()

Page 7: Träd och tillämpningar

Insert ()

7

2

3

9

1151

6

Page 8: Träd och tillämpningar

Insert ()

7

2

3

9

1151

6

Page 9: Träd och tillämpningar

Insert ()

7

2

3

9

1151

6

Page 10: Träd och tillämpningar

Insert ()

7

2

3

9

1151

6

Page 11: Träd och tillämpningar

Binära Sökträd – metoden find()-mycket kort söktid

Page 12: Träd och tillämpningar

Binära Sökträd – metoden findMax()-mycket kort söktid

Page 13: Träd och tillämpningar

Binära Sökträd – metoden findMin()-mycket kort söktid

Page 14: Träd och tillämpningar

Farliga specialfall!

Page 15: Träd och tillämpningar

Remove ()

7

2

3

9

1151

a) Om noden är löv

Page 16: Träd och tillämpningar

Remove ()

7

2

3

9

1151

b) Om noden har ett barn

Page 17: Träd och tillämpningar

Remove ()

7

2

3

9

1151

4

c) Om noden har två barn

3

Ersätt värdet i noden med den minsta värdet i i det högra delträdet och sedan ta bort den noden

Page 18: Träd och tillämpningar

Datakomprimering - Huffman

Hej, mitt namn är Nicolinaoch jag försöker få minastudenter att se tjusningeni träd ochkomprimeringsalgoritmer!

01001000 01100101 01101010 00101100 00100000 01101101 0110100101110100 01110100 00100000 01101110 01100001 01101101 0110111100100000 10000100 ...

Page 19: Träd och tillämpningar

01001000 01100101 01101010 00101100 00100000 01101101 0110100101110100 01110100 00100000 01101110 01100001 01101101 0110111100100000 10000100 ...

Datakomprimering - Huffman

1011110010

01111

01101

11100

1101101

10011

0011100

10 ...

101 1110 01001 111011 0111 1001101 10110 011001 1100 10 ...

Page 20: Träd och tillämpningar

Huffman träd, men hur?

a

d

b c

Page 21: Träd och tillämpningar

Datakomprimering - Huffman

0100110101101101001101011010100101010111

25 ggr

31 ggr

5 ggr

19 ggr

14 ggr

I

II

III

IV

V III

III IV

V

10

111000000101

I

II

III

IV

V

=

=

=

=

=