1 / 13

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

Ö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) {

mignon
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Binärträd

  3. 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

  4. 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)

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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() ; }

  13. 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

More Related