Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.82 KB | None | 0 0
  1. package chapter03;
  2.  
  3. public class Kunde {
  4.     int nr;          // Schlüssel
  5.     String name;     // stellvertretend für die Daten
  6.  
  7.     public Kunde(int nr, String name) {
  8.         this.nr = nr;
  9.         this.name = name;
  10.     }
  11.  
  12.     public String toString() {
  13.         return nr + " " + name;
  14.     }
  15.  
  16.     // class List
  17.     // void insert(Kunde kunde) -- Hängt ein Kundenobjekt nach Kundennummer
  18.     // sortiert in die Liste ein
  19.     // void delete(int nr) -- Löscht das durch die Kundennummer
  20.     // angegebene Kundenobjekt aus der Liste
  21.     // Kunde member(int nr) -- Sucht das Kundenobjekt mit der
  22.     // angegebenen Kundennummer
  23.     // void print() -- gibt die komplette Kundenliste aus
  24.  
  25.     class List {
  26.         private Node head = null;
  27.  
  28.         // Ein Knoten muss nur innerhalb einer Liste bekannt sein,
  29.         // deshalb wird Node eine interne Klasse von Liste
  30.         private class Node {
  31.             private Kunde kunde;
  32.             private Node next;
  33.  
  34.             public Node(Kunde kunde, Node node) {
  35.                 this.kunde = kunde;
  36.                 next = node;
  37.             }
  38.         }
  39.  
  40.         public void insert(Kunde kunde) {
  41.             Node node = head;
  42.  
  43.             // Fallunterscheidung: Einhaengen am Kopf der Liste
  44.             // muss extra betrachtet werden.
  45.  
  46.             if (node.next == null || node.kunde.nr > kunde.nr) {
  47.                 head = new Node(kunde, node);
  48.             } else {
  49.                 while (node.next != null) {
  50.                     // Suchen der richtigen Position
  51.                     if (node.next.kunde.nr > kunde.nr) {
  52.                         break;
  53.                     }
  54.                     node = node.next;
  55.                 }
  56.                 node.next = new Node(kunde, node.next);
  57.             }
  58.  
  59.         }
  60.  
  61.         public void delete(int nr) {
  62.             Node node = head;
  63.             // Nichts tun bei leerer Liste
  64.             if (node != null) {
  65.                 // Fallunterscheidung: Loeschen am Kopf der Liste
  66.                 // muss extra betrachtet werden.
  67.                 if (node.kunde.nr == nr) {
  68.                     head = node.next;
  69.                 } else {
  70.                     while (node.next != null) {
  71.                         // Suchen des Elements
  72.                         if (node.next.kunde.nr == nr) {
  73.                             node.next = node.next.next;
  74.                             break;
  75.                         }
  76.                         node = node.next;
  77.                     }
  78.                 }
  79.             }
  80.  
  81.         }
  82.  
  83.         public Kunde member(int nr) {
  84.             Node node = head;
  85.             while (node != null) {
  86.                 if (node.kunde.nr == nr) {
  87.                     return node.kunde;
  88.                 }
  89.                 node = node.next;
  90.             }
  91.             return null;
  92.         }
  93.  
  94.         public void print() {
  95.             Node node = head;
  96.             while (node != null) {
  97.                 System.out.println(node.kunde);
  98.                 node = node.next;
  99.             }
  100.             System.out.println();
  101.         }
  102.  
  103.     }
  104.     public static void main(String[] args) {
  105.        
  106.         List myList = new List();
  107.        
  108.         myList.insert(new Kunde(3, "Caesar"));
  109.         myList.insert(new Kunde(1, "Anton"));
  110.         myList.insert(new Kunde(2, "Berta"));
  111.         myList.insert(new Kunde(4, "Dora"));
  112.        
  113.         myList.print();
  114.        
  115.         System.out.println(myList.member(1));
  116.         System.out.println(myList.member(2));
  117.         System.out.println(myList.member(3));
  118.         System.out.println(myList.member(4));
  119.        
  120.         myList.delete(4);
  121.         myList.delete(2);
  122.         myList.delete(1);
  123.         myList.delete(3);
  124.        
  125.         myList.print();
  126.     }
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement