Presentation laddar. Vänta.

Presentation laddar. Vänta.

Träd -Allmänt om träd -Binärt träd -Filkomprimering med Huffman träd -- Kapitel 18, 12.

Liknande presentationer


En presentation över ämnet: "Träd -Allmänt om träd -Binärt träd -Filkomprimering med Huffman träd -- Kapitel 18, 12."— Presentationens avskrift:

1 Träd -Allmänt om träd -Binärt träd -Filkomprimering med Huffman träd -- Kapitel 18, 12

2 Vad är ett träd?

3 Datoranpassat träd...

4 Var finns träd? Fil / Katalog strukturer! Sökning och sortering Filkomprimenring Kompilatorer

5 Ny terminologi! Nod Kant Rot Löv Förälder Barn Djup Höjd 0 1 2 1 1 2 2 22 2 2 1 0 1 1 0 0 00 0

6 Lite mer komplicerat träd Rot Löv Djup Höjd Storlek A DCB K JI HGF E 0 1111 22222 3 3 1012 00001 0 11 3124 11112 1

7 Funktioner på träd Typiska funktioner (oftast rekursiva!)  Antalet noder i ett träd  Listning (traversering) av trädstrukturen

8 Speciella sorters träd Binära träd  Maximalt två barn / nod Vänster / höger barn a b def c

9 Binära träd- rekursiv definition Ett binärt träd är antligen tom (null) eller består av en rot, ett vänster träd och ett höger träd. a b cd e f

10 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; } public BinaryNode(){ this( null,null,null); } } element left right

11 Implementation - metoder - public Object getElement() - public BinaryNode getLeft() - public void printPreorder() - public void printPostOrder() - public void printInOrder(); - public static int size(BinaryNode n) - public static int height( BinaryNode n) -...............................................................

12 Metoden –size() public static int size(BinaryNode n) { if (n==null) return 0; else return 1+size(n.left)+size(n.right); }

13 Metoden printPreorder() public void printPreorder(){ System.out.println(element); if(left!=null) left.printPreorder(); if(rigth!=null) right.printPreorder(); } a cb fe abe f c

14 Metoden printPostOrder() public void printPostOrder(){ if(left!=null) left.printPostOrder(); if(rigth!=null) right.printPostOrder(); System.out.println(element); } a cb fe efb c a

15 BinaryTree klassen class BinaryTree{ } private BinaryNod root; public BinaryTree( Object item){ root=new BinaryNode(item,null,null); } public BinaryTree(){ root=null; }

16 BinaryTree-metoden merge() public void merge( Object item, BinaryTree t1, BinaryTree t2) { // Testa om inte t1 och t2 är samma träd if( t1.root== t2.root && t1.root!=null) // rapportera fel root = new BinaryNode( item, t1.root,t2.root); if(this!=t1) t1.root=null; if(this!=t2) t2.root=null; }

17 Tillämpning- Binära Sökträd (Mycket kortare söktider!)

18 Farliga specialfall!

19 Tillämpning-Uttrycksträd * +- ab a b

20 Tillämpning-datakomprimering a d bc

21 Datakomprimering - Huffman Hej, mitt namn är Nicolina och jag försöker få mina studenter att se tjusningen i träd och komprimeringsalgoritmer! 01001000 01100101 01101010 00101100 00100000 01101101 01101001 01110100 01110100 00100000 01101110 01100001 01101101 01101111 00100000 10000100...

22 01001000 01100101 01101010 00101100 00100000 01101101 01101001 01110100 01110100 00100000 01101110 01100001 01101101 01101111 00100000 10000100... Datakomprimering - Huffman 101 1110 010 01 111 011 01 11 100 1101 101 10 011 001 1100 10... 101 1110 010 01111 01101 11100 1101101 10011001110010...

23 Datakomprimering - Huffman 01001101 01101101 00110101 10101001 01010111 25 ggr 31 ggr 5 ggr 19 ggr 14 ggr I II III IV V III IIIIV V 10 11 10 000 001 01 I II III IV V = = = = =


Ladda ner ppt "Träd -Allmänt om träd -Binärt träd -Filkomprimering med Huffman träd -- Kapitel 18, 12."

Liknande presentationer


Google-annonser