130 likes | 225 Views
Ö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) {
E N D
Övning 3 www.nada.kth.se/~mhj/tilda
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) { this.nr = nr; left = null; right = null; } } new BinTree() 5 insert(5) insert(2) 2 6 insert(6) insert(8) 4 8 insert(9) insert(4) 7 9 insert(7)
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); } } } 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); } } tree root null nr 7 r l null null nr nr 4 9 r r l l null null null null nr nr 3 6 r r l l null null null null
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; } } 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); } } tree root null nr 7 r l null null nr nr 4 9 r r l l null null null null nr nr 3 6 r r l l null null null null
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); } } 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(); } } 29 tree root null 29 nr 7 r l null null 13 9 nr nr 4 9 r r l l null null null null 3 6 nr nr 3 6 r r l l null null null null
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); } } 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(); } } 5 tree root null 5 nr 7 r l null null 3 1 nr nr 4 9 r r l l null null null null 1 1 nr nr 3 6 r r l l null null null null
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)); } } 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(); } } 3 tree root null 3 nr 7 r l null null 2 1 nr nr 4 9 r r l l null null null null 1 1 nr nr 3 6 r r l l null null null null
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); } } 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(); } } 3 tree root null 3 nr 7 r l null null 2 1 nr nr 4 9 r r l l null null null null 1 1 nr nr 3 6 r r l l null null null null
Binärträd 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; } } Henrik 49 key Victoria 34 Hanna 78 Fredrik 7 Zlatan 40 Kristin 57
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