Övning 3 nada.kth.se/~mhj/tilda
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 PresentationTRANSCRIPT
Övning 3www.nada.kth.se/~mhj/tilda
Binärträd
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
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; } }
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); } }
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); } }
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
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
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
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
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
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() ;}
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