Palindrom mit Stack?

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
soll ein java-programm schreiben, dass prüft, ob ein eingelesenes wort ein palindrom ist (also rückwärts gelesen das selbe heißt wie vorwärts, z.b. anna).
dabei soll ein stack verwendet werden,
ich als blutiger anfänfer habe jedoch keine ahnung, wie das gehen soll :oops:

kann mir jemand vielleicht helfen und das programm posten, dann versteh ich es (vielleicht)
danke!

[Edit by Beni: in die Aufgaben-Rubrik geschoben]
 
G

Guest

Gast
netter versuch XD
wenn du nen keller aka lifo stack hast, sollte doch klar sein, worauf die aufgabe hinausläuft! wenn du die chars deines strings hintereinander mit PUSH reintust, kriegst du sie ja hinterher mit TOP,POP in umgekehrter reihenfolge wieder raus. jetzt überleg mal: wie kann dieser sachverhalt bei der überprüfung auf palindrom-eigenschaft hilfreich sein?
 
G

Guest

Gast
die lösungsidee war mir schon klar, nur mit der umsetztung in java hab ich so meine probleme.....
 

SebiB90

Top Contributor
so viele gäste....gebt euch mal wenigstens namen damit man euch unterscheiden kann
am besten gleich registrieren.

wo sind denn deine probleme? wie sieht dein bisheriger code aus?
 
F

fragesteller

Gast
einen bisherigen code gibt es noch nicht, ich habe keinen schimmer, wie ich anfangen soll :roll:
bin, wie gesagt, noch ein blutiger anfänger in java. und hab noch nie ein programm mit stack geschrieben. un d jetzt diese aufgabe...
 

Pappenheimer++

Bekanntes Mitglied
Hy, ich habe hier bei mir einen Quellcode gefunden, den ich mal fürs Studium geschrieben habe. Es handelt sich um einen Keller-Stack für Characters (intern in einem array realisiert die Größe des Stacks muss im Konstruktor übergeben werden). Der Quellcode hat natürlich seine Schwächen, aber er ist wenigstens einfach zu verstehen! Also sieh in dir mal an: du findest PUSH,POP,TOP usw. Sind jetzt deine Blockaden überwunden?
Code:
class AdtStack
{
private char[] feld;
private int position=0;

public AdtStack(int laenge) //konstruktor
	{
		if(laenge>0)
 			feld = new char[laenge];
		else
		{
			System.err.println("Bitte positive Laenge geben");
			feld=null;
		}
	}

public boolean is_empty()
	{
		return(position<1);
	}

public boolean is_full()
	{
		return(position==feld.length);
	}

public void push(char x)
	{
		if(is_full())
		{
			System.err.println("Dein Keller ist voll.");
			return;
		}
		else
		{
			feld[position++]=x;
		}
	}

public void pop()
	{
		if(is_empty())
		{
			System.err.println("Dein Keller ist schon leer.");
			return;
		}
		else
			feld[--position]=0; //es ist redundant, die feldelemente=0 zu setzen - sie sind ohnehin nicht mehr ansprechbar
	}

public char top()
	{
		if(is_empty())
		{
			System.err.println("Dein Keller ist leer.");
			return '0';
		}
		else
		return feld[position-1];
	}
}
 
Status
Nicht offen für weitere Antworten.

Oben