Moin Leute,
hier mal schnell mein Programm
Wenn ich das Programm ausführe und eine Liste erstelle ist das kein Problem doch wenn ich die Liste dann mit der Funktion print() ausgeben will dann gibt er nix aus es liegt irgendwie daran das alle Variablen wieder null sind aber ich weiß nicht warum ?!.
gruß
hier mal schnell mein Programm
Code:
package JetztAber;
import java.io.*;
public class Student {
Student_Node head;
Student_Node tail;
Student_Node temp2;
// Student(){
// head = null;
// tail = null;
// }
void creatList(){
Student test = new Student();
try{
BufferedReader in = new BufferedReader(new InputStreamReader( System.in ) );
System.out.print("Wie groß soll das Zahlenfeld sein?");
System.out.println();
String s = in.readLine();
int g=Integer.parseInt(s);
System.out.println("Ihre Zahlen können werden nun eingelsesen!");
System.out.println();
for(int i=1;i<=g;i++){
System.out.println("Geben sie ihre " + i + " zahl nun ein:");
String k = in.readLine();
int t=Integer.parseInt(k);
test.insert(t);
}
}
catch ( IOException ex ) {
System.out.println( ex.getMessage() );
}
}
// neues Element (Knoten) in die Liste einfuegen ----------------------------
void insert(int matr_nr) {
// Erzeugen eines neuen Knotens
Student_Node studi = new Student_Node(matr_nr);
// falls Liste leer
if (head == null) {
studi.prev = studi;
studi.next = null;
head = studi;
temp2 = head;
}
else {
studi.next = head;
if (head != null) {
head.prev = studi;
}
head = studi;
studi.prev = tail;
temp2 = head;
}
}
// neues Element (Knoten) ans Ende der Liste einfuegen ----------------------
public void insertLast(int matr_nr){
// Erzeugen eines neuen Knotens
// Student_Node studi = new Student_Node(matr_nr);
// falls Liste leer
if (head == null) {
tail = new Student_Node(matr_nr,null,null);
tail = head;
}
else {
Student_Node hilf = new Student_Node(matr_nr,head.next,head);
head.next = hilf;
if (hilf.next == null)
tail = hilf;
else
hilf.next.prev = hilf;
}
}
// Element aus Liste loeschen -----------------------------------------------
void delete() {
try{
Student_Node temp = head;
BufferedReader in = new BufferedReader(new InputStreamReader( System.in ) );
System.out.print("Geben sie das zu löschende Element ein:");
String s = in.readLine();
int g=Integer.parseInt(s);
while (temp != null) {
if (temp.matr_nr == g) {
//wenn temp nicht erstes Element
if (temp.prev != null) {
(temp.prev).next = temp.next;
}
else {
//wenn temp erstes Element
head = temp.next;
}
//wenn temp nicht letztes Element
if (temp.next != null) {
(temp.next).prev = temp.prev;
}
}
temp = temp.next;
}
}catch ( IOException ex ) {
System.out.println( ex.getMessage() );
}
}
// Studenten nach Matrikelnummer suchen -------------------------------------
void search(int matr_nr) {
Student_Node temp = head;
boolean found = false;
// gesuchtes Element = erstes Element ? ...
if (temp.matr_nr == matr_nr) {
found = true;
}
// ...falls nicht laufe durch Liste
while (temp.next != null && temp.matr_nr != matr_nr) {
if (temp.next != null) {
temp = temp.next;
}
if (temp.matr_nr == matr_nr) {
found = true;
}
}
if (found == true) {
System.out.println("Folgender Student wurde gefunden: " + matr_nr);
}
else {
System.out.println("Die Liste enthaelt keinen Studenten mit der Matrikelnummer " + matr_nr);
}
}
// Ausgabe der gesamten Liste (iterativ) ------------------------------------
void print() {
Student_Node temp = head;
while(temp != null) {
System.out.println(temp.matr_nr);
temp = temp.next;
}
}
// Ausgabe der gesamten Liste (rekursiv) -----------------------------------
public void printR(){
if (temp2 != null) {
System.out.println(temp2.matr_nr);
temp2 = temp2.next;
printR();
}
}
// Ausgabe der gesamten Liste in anderer Reihenfolge (rekursiv) --------------
public void printRev(){
}
public static void main (String[] args) {
while(true){
try{
Student first = new Student();
BufferedReader in = new BufferedReader(new InputStreamReader( System.in ) );
System.out.print("-----------------ListenAdmin-----------------");
System.out.println();
System.out.println();
System.out.println("Welche Funktion wollen sie nutzen?");
System.out.println();
System.out.println("Um eine List zu erstellen drücken sie die 1");
System.out.println("Um die Liste zu erweitern drücken sie die 2");
System.out.println("Um ans Ende der Liste etwas anzuhängen drücken sie die 3");
System.out.println("Um ein Element aus der Liste zu Löschen drücken sie die 4");
System.out.println("Um die List anzeigen zu lassen drücken sie die 5");
System.out.println("Um das Programm zu beenden drücken sie die 6");
String s = in.readLine();
int g=Integer.parseInt(s);
switch(g){
case 1: {first.creatList();
}
break;
case 2: System.out.print("noch keine funktion");
break;
case 3: System.out.print("noch keine funktion");
break;
case 4: first.delete();
break;
case 5: first.print();
break;
case 6: Runtime.getRuntime().exit(0);
}
}catch ( IOException ex ) {
System.out.println( ex.getMessage() );
}
}
}
}
Code:
package JetztAber;
public class Student_Node {
int matr_nr;
int dat;
Student_Node prev; // vorheriges Element
Student_Node next; // naechstes Element
Student_Node(int matrikelnummer) {
this.matr_nr = matrikelnummer;
}
Student_Node(int dat, Student_Node next, Student_Node prev) {
this.dat = dat;
this.next = next;
this.prev = prev;
}
}
Wenn ich das Programm ausführe und eine Liste erstelle ist das kein Problem doch wenn ich die Liste dann mit der Funktion print() ausgeben will dann gibt er nix aus es liegt irgendwie daran das alle Variablen wieder null sind aber ich weiß nicht warum ?!.
gruß