Element.java 0100600 0005063 0003727 00000002333 07760720043 012375 0 ustar giesl lufgi2 /** Datentyp für Elemente einer linearen Liste von ganzen Zahlen
* @see Liste
* @author Jürgen Giesl
*/
class Element {
int wert;
Element next; //Element ist eine rekursive Datenstruktur.
/** Erzeugt ein neues Element ohne Nachfolger.
* @param wert Wert, den das neue Element erhalten soll
*/
Element (int wert) {
this.wert = wert;
next = null;
}
/** Erzeugt ein neues Element mit Nachfolger.
* @param wert Wert, den das neue Element erhalten soll
* @param next Nachfolgerelement des neuen Elements
*/
Element (int wert, Element next) {
this.wert = wert;
this.next = next;
}
/** @return Wert des Elements
*/
int getWert () {
return wert;
}
/** @param wert Wert, den das Element erhalten soll
*/
void setWert (int wert) {
this.wert = wert;
}
/** @return Nachfolger des Elements
*/
Element getNext () {
return next;
}
/** @param next Nachfolger, den das Element erhalten soll
*/
void setNext (Element next) {
this.next = next;
}
public String toString () {
return new Integer(wert).toString();
}
}
Liste.java 0100600 0005063 0003727 00000014275 07761150035 012073 0 ustar giesl lufgi2 /** Datentyp für lineare Listen von ganzen Zahlen
* @see Element
* @author Jürgen Giesl
*/
public class Liste {
/** Attribut, das auf das erste Element der Liste zeigt
*/
private Element kopf;
/** Erzeugt eine neue leere Liste
*/
public Liste () {
kopf = null;
}
/** Sucht nach einem Element in der Liste.
* @param wert Der Wert des gesuchten Elements.
* @return Das erste Element in der Liste mit diesem Wert, falls
* es ein solches gibt. Sonst wird null zurückgegeben.
*/
public Element suche (int wert) {
return suche (wert, kopf);
}
/** Sucht nach einem Element in einer vorgegebenen Liste.
* @param wert Der Wert des gesuchten Elements.
* @param kopf Der Kopf der Liste, in der gesucht wird.
* @return Das erste Element in jener Liste mit diesem Wert, falls
* es ein solches gibt. Sonst wird null zurückgegeben.
*/
private static Element suche (int wert, Element kopf) {
if (kopf == null) return null;
else if (kopf.wert == wert) return kopf;
else return suche (wert, kopf.next);
}
/** Erzeugt einen String, der die Elemente der Liste von vorne nach hinten
* aufzählt.
* @return Die Liste als Zeichenkette
*/
public String toString () {
return "( " + durchlaufe(kopf) + ")";
}
/** Gibt den Inhalt der Liste (von vorne nach hinten) auf dem Bildschirm aus.
* @return Die Liste als Zeichenkette
*/
public void drucke() {
System.out.println (this);
}
/** Erzeugt einen String, der aus allen Elementen einer vorgegebenen Liste (von vorne
* nach hinten) besteht.
* @param kopf Der Kopf der zu durchlaufenden Liste.
* @return Die Zeichenkette aller Elemente jener Liste.
*/
private static String durchlaufe (Element kopf) {
if (kopf != null) return kopf.wert + " " + durchlaufe(kopf.next);
else return "";
}
/** Erzeugt einen String, der die Elemente der invertieren Liste
* (d.h., von hinten nach vorne) aufzählt.
* @return Die invertierte Liste als Zeichenkette
*/
public String toStringRueckwaerts () {
return "(" + durchlaufeRueckwaerts(kopf) + " )";
}
/** Gibt den Inhalt der invertierten Liste (d.h., von hinten nach
* vorne) auf dem Bildschirm aus.
* @return Die Liste als Zeichenkette
*/
public void druckeRueckwaerts() {
System.out.println (this.toStringRueckwaerts());
}
/** Erzeugt einen String, der aus allen Elementen einer
* invertierten vorgegebenen Liste (von hinten
* nach vorne) besteht.
* @param kopf Der Kopf der zu durchlaufenden Liste.
* @return Die Zeichenkette aller Elemente jener invertierten Liste.
*/
private static String durchlaufeRueckwaerts (Element kopf) {
if (kopf != null) return durchlaufeRueckwaerts(kopf.next) + " " + kopf.wert;
else return "";
}
/** Fügt ein Element vorne in die Liste ein.
* @param wert Der Wert des einzufügenden Elements.
*/
public void fuegeVorneEin (int wert) {
if (kopf == null) kopf = new Element (wert);
else kopf = new Element (wert, kopf);
}
/** Fügt ein Element vor dem ersten größeren Element in die Liste ein.
* War die Liste also vorher aufsteigend sortiert, so ist sie es hinterher
* immer noch.
* @param wert Der Wert des einzufügenden Elements.
*/
public void fuegeSortiertEin (int wert) {
kopf = fuegeSortiertEin (wert, kopf);
}
/** Fügt ein Element vor dem ersten größeren Element ein, das ab einem vorgegebenen
* Element in der Liste auftritt. Sind die Zahlen vor dem vorgegebenen Element
* also kleiner als das einzufügende Element und ist die Liste vorher aufsteigend
* sortiert, so ist sie es hinterher immer noch.
* @param wert Der Wert des einzufügenden Elements.
* @param element Das Element der Liste, ab dem erst eingefügt werden kann.
* @return Das erste Element der Teilliste ab dem vorgegebenen Element,
* wobei der einzufügende Wert eingefügt wurde.
*/
private Element fuegeSortiertEin (int wert, Element element) {
if (element == null) return new Element (wert);
else if (wert < element.wert) return new Element (wert, element);
else {element.next = fuegeSortiertEin (wert, element.next);
return element;}
}
/** Fügt ein Element vor dem ersten größeren Element in die Liste ein.
* War die Liste also vorher aufsteigend sortiert, so ist sie es hinterher
* immer noch.
* @param wert Der Wert des einzufügenden Elements.
*/
public void fuegeSortiertEinIterativ (int wert) {
Element element = kopf;
if (kopf == null || wert < kopf.wert) fuegeVorneEin(wert);
else {
while (element.next != null && wert > element.next.wert)
element = element.next;
element.next = new Element (wert, element.next);
}
}
/** Löscht die komplette Liste.
*/
public void loesche () {
kopf = null;
}
/** Löscht das erste Element mit dem angegebenen Wert aus der Liste.
* @param wert Der Wert des zu löschenden Elements.
*/
public void loesche (int wert) {
kopf = loesche (wert, kopf);
}
/** Löscht das erste Element mit dem angegebenen Wert, das ab einem vorgegebenen
* Element in der Liste auftritt.
* @param wert Der Wert des zu löschenden Elements.
* @param element Das Element der Liste, ab dem erst gelöscht werden kann.
* @return Das erste Element der Teilliste ab dem vorgegebenen Element,
* wobei der zu löschende Wert gelöscht wurde.
*/
private static Element loesche (int wert, Element element) {
if (element == null) return null;
else if (wert == element.wert) return element.next;
else {element.next = loesche (wert, element.next);
return element;}
}
}
Listen_Programm.java 0100600 0005063 0003727 00000001453 07761150152 014107 0 ustar giesl lufgi2 public class Listen_Programm {
public static void main (String [] args) {
boolean x = 'a' < 'b';
System.out.println(x);
Liste l = new Liste ();
l.fuegeVorneEin (30);
l.fuegeVorneEin (25);
l.fuegeVorneEin (17);
l.fuegeVorneEin (4);
l.drucke ();
l.druckeRueckwaerts ();
l.fuegeSortiertEin (28);
l.fuegeSortiertEin (12);
l.fuegeSortiertEin (45);
l.fuegeSortiertEin (2);
l.drucke ();
if (l.suche (17) != null) System.out.println (l.suche(17));
else System.out.println ("17 ist nicht in der Liste");
if (l.suche (10) != null) System.out.println (l.suche(10));
else System.out.println ("10 ist nicht in der Liste");
l.loesche (28);
l.loesche (10);
l.loesche (17);
l.drucke ();
l.loesche ();
l.drucke ();
}
}
doc/ 0040700 0005063 0003727 00000000000 07761150466 010715 5 ustar giesl lufgi2 doc/constant-values.html 0100600 0005063 0003727 00000010572 07761150466 014735 0 ustar giesl lufgi2
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
Package
Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:
Interfaces (italic)
Classes
Exceptions
Errors
Class/Interface
Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:
Class inheritance diagram
Direct Subclasses
All Known Subinterfaces
All Known Implementing Classes
Class/interface declaration
Class/interface description
Nested Class Summary
Field Summary
Constructor Summary
Method Summary
Field Detail
Constructor Detail
Method Detail
Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
Tree (Class Hierarchy)
There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.
When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
Deprecated API
The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.
Index
The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.
Prev/Next
These links take you to the next or previous class, interface, package, or related page.
Frames/No Frames
These links show and hide the HTML frames. All pages are available with or without frames.
Serialized Form
Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
This help file applies to API documentation generated using the standard doclet.