Övning 3 nada.kth.se/~mhj/tilda

13
Övning 3 www.nada.kth.se/~mhj/tilda

Upload: mignon

Post on 18-Feb-2016

27 views

Category:

Documents


0 download

DESCRIPTION

Övning 3 www.nada.kth.se/~mhj/tilda. Binärträd. Binärträd. 5. 5. insert(5). insert(2). 2. 2. 6. 6. insert(6). insert(8). insert(9). 8. 8. 4. insert(4). insert(7). 7. 9. Binärträd. root. public class Node { int nr; Node left; Node right; public Node(int nr) { - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Övning 3 nada.kth.se/~mhj/tilda

Övning 3www.nada.kth.se/~mhj/tilda

Page 2: Övning 3 nada.kth.se/~mhj/tilda

Binärträd

Page 3: Övning 3 nada.kth.se/~mhj/tilda

Binärträd

insert(5)insert(2)insert(6)insert(8)insert(9)insert(4)insert(7)

5

2 6

84

7 9

5

2 6

8

Page 4: Övning 3 nada.kth.se/~mhj/tilda

Binärträd

insert(5)insert(2)insert(6)insert(8)insert(9)insert(4)insert(7)

rootnew BinTree()

2

5

6

8

97

4

public class Node { int nr; Node left; Node right; public Node(int nr) { this.nr = nr; left = null; right = null; } }

Page 5: Övning 3 nada.kth.se/~mhj/tilda

public class BinTree { private Node root;

public BinTree() { root = null; } public void insert(int nr) { if (root == null) root = new Node(nr); else insert(root, nr); } public void insert(Node n, int nr) { if(nr < n.nr) { if (n.left == null) n.left = new Node(nr); else insert(n.left, nr); } else if (nr > n.nr) { if (n.right == null) n.right = new Node(nr); else insert(n.right, nr); } }}

tree root

nulll null

null

nr 7r

nulll nullnr 9

rnulll nullnr 4

r

nulll nullnr 3

r nulll nullnr 6

r

public class Ex1BinaryTree { public static void main(…) { BinTree tree=new BinTree(); tree.insert(7); tree.insert(4); tree.insert(9); tree.insert(6); tree.insert(3); } }

Page 6: Övning 3 nada.kth.se/~mhj/tilda

public class BinTree { private Node root;

public BinTree() { root = null; }

public void insert(int nr) { root = insert(root, nr); }

public Node insert(Node n, int nr) { if (n == null) return new Node(nr); else if (nr < n.nr) n.left = insert(n.left, nr); else if (nr > n.nr) n.right = insert(n.right, nr); return n; }}

tree root

nulll null

null

nr 7r

nulll nullnr 9

rnulll nullnr 4

r

nulll nullnr 3

r nulll nullnr 6

r

public class Ex2BinaryTree { public static void main(…) { BinTree tree=new BinTree(); tree.insert(7); tree.insert(4); tree.insert(9); tree.insert(6); tree.insert(3); } }

Page 7: Övning 3 nada.kth.se/~mhj/tilda

public class BinTree { private Node root;

public BinTree() { root = null; }

public int sum() { return sum(root); }

public int sum(Node n) { if (n == null) return 0; else return n.nr + sum(n.left) + sum(n.right); }

}

tree root

nulll null

null

nr 7r

nulll nullnr 9

rnulll nullnr 4

r

nulll nullnr 3

r nulll nullnr 6

r

public class Ex3BinaryTree { public static void main(…) { BinTree tree=new BinTree(); tree.insert(7); tree.insert(4); tree.insert(9); tree.insert(6); tree.insert(3); tree.sum(); } }

3 6

13 9

29

29

Page 8: Övning 3 nada.kth.se/~mhj/tilda

public class BinTree { private Node root;

public BinTree() { root = null; }

public int noOfNodes() { return noOfNodes(root); }

public int noOfNodes(Node n) { if (n == null) return 0; else return 1 + noOfNodes(n.left) + noOfNodes(n.right); }

}

tree root

nulll null

null

nr 7r

nulll nullnr 9

rnulll nullnr 4

r

nulll nullnr 3

r nulll nullnr 6

r

public class Ex4BinaryTree { public static void main(…) { BinTree tree=new BinTree(); tree.insert(7); tree.insert(4); tree.insert(9); tree.insert(6); tree.insert(3); tree.noOfNodes(); } }

1 1

3 1

5

5

Page 9: Övning 3 nada.kth.se/~mhj/tilda

public class BinTree { private Node root;

public BinTree() { root = null; }

public int depth() { return depth(root); }

public int depth(Node n) { if (n == null) return 0; else return 1 + Math.max(depth(n.left), depth(n.right)); }

}

tree root

nulll null

null

nr 7r

nulll nullnr 9

rnulll nullnr 4

r

nulll nullnr 3

r nulll nullnr 6

r

public class Ex5BinaryTree { public static void main(…) { BinTree tree=new BinTree(); tree.insert(7); tree.insert(4); tree.insert(9); tree.insert(6); tree.insert(3); tree.depth(); } }

1 1

2 1

3

3

Page 10: Övning 3 nada.kth.se/~mhj/tilda

public class BinTree { private Node root;

public BinTree() { root = null; }

public int nrOfLeaves() { return nrOfLeaves(root); }

public int nrOfLeaves(Node n) { if (n == null) return 0; else if (n.left == null && n.right == null) return 1; else return nrOfLeaves(n.left) + nrOfLeaves(n.right); }

}

tree root

nulll null

null

nr 7r

nulll nullnr 9

rnulll nullnr 4

r

nulll nullnr 3

r nulll nullnr 6

r

public class Ex6BinaryTree { public static void main(…) { BinTree tree=new BinTree(); tree.insert(7); tree.insert(4); tree.insert(9); tree.insert(6); tree.insert(3); tree.nrOfLeaves(); } }

1 1

2 1

3

3

Page 11: Övning 3 nada.kth.se/~mhj/tilda

Binärträd

Victoria34

Henrik49

Hanna78

Kristin57

Zlatan40

Fredrik7

public class BinaryNode { String namn; int medlemsNummer; BinaryNode left; BinaryNode right; public BinaryNode (String n, int m) { namn = n; medlemsNummer = m; left = null; right = null; } }

public class BinaryNode { String namn; int key; BinaryNode left; BinaryNode right; public BinaryNode (String n, int k) { namn = n; key = k; left = null; right = null; } }

public class BinaryNode { Object object; int key; BinaryNode left; BinaryNode right; public BinaryNode (Object o, int k) { object = o; key = k; left = null; right = null; } }

key

Page 12: Övning 3 nada.kth.se/~mhj/tilda

import java.io.*;

public interface MioI {

/** Läs en rad, glufsa radbytet, returnera raden */ public String getLine() ;

/** Läs ett ord avgränsat av blanka och returnera det */ public String getWord() ;

/** Läs ett heltal avgränsat av blanka och returnera det*/ public int getInt() ;

/** Läs decimaltal avgränsat av blanka och returnera det*/ public double getDouble() ; /** Läs ett tecken och returnera det */ public char getChar() ;

/** Tjuvtitta på nästa tecken och returnera det */ public char nextChar() ;

/** Glufsa eventuella blanka på tur att läsas */ public void skipBlanks() ;

/** Returnera true om retur står i tur */ public boolean eoln() ;

/** Returnera true om ctrl-D står i tur */ public boolean eof() ;}

Page 13: Övning 3 nada.kth.se/~mhj/tilda

public interface LagraI {

// lagrar objektet object med nyckeln key public void insert(Object object, int key);

// hämtar objektet med nyckeln key public Object get(int key);}

public class Lagra implements LagraI {

public void insert(Object object, int key) { // här finns kod som sparar objektet object med nyckeln key }

public Object get(int key) { // här finns kod som returnerar objektet med nyckeln key }}public class TestaLagra {

public static void main(String [] args) { Lagra lagra = new Lagra(); lagra.insert(”Pelle”, 4); System.out.println((String) lagra.get(4)); }}

Pelle