![]() |
[Java] Anfängerhilfe
Hallo zusammen,
im Infountterricht sollten wir einen Stack selbst programmieren, danach einen dynamischen Stack (also erst mit Array dann mit Referenz). Nun habe ich das ganze ein wenig erweitert und habe folgendes Problem: Ich will eine Reihe von Zahlen aus einer Textdatei auslesen, diese Zahlen werden dann von String in Integers umgewandelt und an das Applet was das ganze ausgibt übergeben. Das klappt soweit, die Daten kommen im Applet an und werden dort in einem Array gespeichert. Allerdings werden die Daten dann nicht in den Stack gepackt, obwohl ich die Methoden dazu (meines erachtens) korrekt ausführe. Habe auch schon beides versucht, die Push-Methode des Applets sowie direkt über die Push-Methode des Stacks Code:
public void readIt() Code:
Code:
public void add(int a) Danke im vorraus. |
Also ich habe noch nie Java benutzt aber irgendwie kommt es mir seltsam vor das du die variable n in der for schleife in der readIt Methode 2 mal erhöhst, einmal direkt in der schleife und einmal direkt danach über die add Methode. (oder kommentierst du das eine aus wenn du die add Methode verwendest?)
in tos ist dein gesamter Stack drin? sehe ich das richtig? |
^ Ich benutze entweder add(int) oder ich greife direkt auf die Stack.push(int) Methode zurück und erhöhe n dann manuell, also wird n immer nur um einen erhöht.
tos ist in der Klasse stack (Stack (groß geschrieben) ist meine Instanz des Stacks in dem Hauptapplet) und gibt die referenz auf das derzeitge element an. Jedes element im stack hat die variablen "ele next" (für das nächste element, und int value, für den wert des jeweiligen Elements. |
Das wichtigste fehlt wohl: Wie sieht die Stack-Klasse denn aus?
Ist "tos" ein primitiver Datentyp? PS: Benutze "for(int i : tempList)" |
^ tos ist vom datentyp "ele", ele ist eine klasse mit nur aus 2 variablen (keine methoden, kein konstruktor) und zwar int value(der wert den ich bei add setze) und ele next, was wiederrum ein "ele" ist. Die elemente bilden eine Kette ( ele -> ele -> ele) und man hat immer nur auf das "oberste" element zugriff, welches auf das element was nach ihm kommt zeigt. Somit kann ich durch die Methode top() in der Klasse Stack auslesen, welchen wert das oberste Element (tos) hat und mit pop() (wieder Klasse Stack) setze ich tos auf das element was in tos.next gespeichert ist. Mit push(int) füge ich der Klasse ein neues Element hinzu.
Edit: So, nun noch die Quelltexte von Ele und stack Code:
public class stack Code:
public class ele |
btw:
Code:
public boolean empty() Code:
public boolean empty() { |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:43 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.