• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Java palindromy przy użyciu stosu

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
0 głosów
675 wizyt
pytanie zadane 30 października 2016 w Java przez Patryk Rafał Bywalec (2,700 p.)

Jak w tytule mam napisać program który sprawdza czy wyraz jest palindromem przy użyciu stosu napisałem sam stos jednakże nie wiem jak go odwrócić

oto kod

  private Element top;

    public Stos()
    {
        this.top = null;
    }
    
    @Override
    public void push(String i) {
        Element pom = new Element(i,top);
        top = pom;
    }

    @Override
    public int pop() {
        if(!this.isEmpty())
        {
            top = top.getNext();
        }
        return 0;
    }

    @Override
    public String peek() {
        return top.getDane();
    }

    @Override
    public boolean isEmpty() {
        if(this.top == null) return true;
        return false;
    }

    @Override
    public void print() {
        
        if(!this.isEmpty())
        {
            while(!this.isEmpty())
            {
                System.out.println(top.getDane());
                top = top.getNext();
            }
        }
      
    }

    @Override
    public void clear() {
        if(!this.isEmpty())
        {
            while(!this.isEmpty())
            {
                top = top.getNext();
            }
        }
    }
    

proszę o jakieś wskazówki

2 odpowiedzi

0 głosów
odpowiedź 30 października 2016 przez Porcupine Nałogowiec (31,600 p.)

1) Jesteś pewien, że masz samemu napisać ten stos? Bo w Javie jest już gotowy stos LINK.

2) Jak wygląda Twoja klasa Element? 

3) 

this.top = null;

jest niepotrzebne. Każda zmienna typu referencyjnego automatycznie po deklaracji przyjmuje wartość null. 

komentarz 30 października 2016 przez Patryk Rafał Bywalec (2,700 p.)

Musi być zachowana struktura a oto klasa Element

 * @author Patryk
 */
public class Element {
    
    private Element next;
    private String dane;
    
    public Element(String dane,Element next)
    {
        this.dane = dane;
        this.next = next;
    }
    
    public String getDane()
    {
        return this.dane;
    }
    
    public Element getNext()
    {
        return this.next;
    }
    
}

 

0 głosów
odpowiedź 30 października 2016 przez mbabane Szeryf (79,260 p.)
Mozna to zrobic np. w ten sposob ze pobierasz stringa, nastepnie wrzucasz cale zdanie kolejno po literce na stos, a potem odczytujesz/zdejmujesz ze stosu i jest automatycznie odwrocone.
komentarz 30 października 2016 przez Patryk Rafał Bywalec (2,700 p.)
edycja 30 października 2016 przez Patryk Rafał
możesz jaśniej najlepiej przykład?
komentarz 30 października 2016 przez Patryk Rafał Bywalec (2,700 p.)
bo na tablicy jest łatwo a na stosie nie bardzo wiem jak to porównać
komentarz 30 października 2016 przez mbabane Szeryf (79,260 p.)
czy wiesz na czym polega stos?
komentarz 30 października 2016 przez Sareley Gaduła (4,740 p.)

Przykładowy kod który odwraca tekst z wykorzystaniem stosu wbudowanego w jave.

import java.util.Stack;

public class HelloWorld {
  public static void main(String[] args) {
    	
    	
    	String word = "poligrom";
        Stack<Character> wordStack = new Stack<>();
        String finalWord = "";
        
        for(Character item : word .toCharArray()){
            wordStack.push(item);
        }

        for(int i = 0; i < word.length(); i++){
        finalWord += wordStack.pop();
    }
    
    System.out.println(finalWord );
  }
}

 

komentarz 30 października 2016 przez Patryk Rafał Bywalec (2,700 p.)
wiem kładziesz element który staje się wierzchołkiem
komentarz 30 października 2016 przez mbabane Szeryf (79,260 p.)

No wlasnie i ten wierzcholek jest aktualnie pierwszym elementem, a ostatnim dodanym, czyli jak wrzuce kolejno litery: a, b, c to na stosie, po ich zdjeciu beda "wygladaly" tak: c, b, a to jest zasadnicza cecha stosu tak zwane LIFO (last in, first out): http://eduinf.waw.pl/inf/alg/001_search/0100.php

Dalem Ci zreszta gotowca wczoraj: http://forum.pasja-informatyki.pl/191637/implementacja-stos-pytanie#a191644 

komentarz 30 października 2016 przez Patryk Rafał Bywalec (2,700 p.)
Dobra już dałem sobie radę wczytalem do stringa i sprawdzilem sobie charat czy jest palindromem
komentarz 31 października 2016 przez Patryk Rafał Bywalec (2,700 p.)
  @Override
    public boolean print() {
        String pom = "";
        if(!this.isEmpty())
        {
            while(top != null){
                
                for(int i=0; i<top.getDane().length(); i++)
                {
                   pom += top.getDane().charAt(i);
                }
                top = top.getNext();
            }
            
        }
       boolean jest = false;
       for(int i=0; i<pom.length() - 1; i++)
       {
           jest = false;
           if(pom.charAt(i) == pom.charAt(pom.length() -i - 1))
           {
               jest = true;
           }else{
               break;
           }
       }
     return jest;
    }
    

 

Podobne pytania

0 głosów
2 odpowiedzi 247 wizyt
pytanie zadane 10 listopada 2016 w Java przez Patryk Rafał Bywalec (2,700 p.)
0 głosów
0 odpowiedzi 522 wizyt
pytanie zadane 2 listopada 2016 w Java przez Patryk Rafał Bywalec (2,700 p.)
0 głosów
2 odpowiedzi 54 wizyt
pytanie zadane 22 października w Systemy operacyjne, programy przez TlenekWodoru Użytkownik (520 p.)

89,727 zapytań

138,332 odpowiedzi

309,340 komentarzy

59,649 pasjonatów

Advent of Code 2022

Top 15 użytkowników

  1. 429p. - Argeento
  2. 427p. - nidomika
  3. 396p. - Mikbac
  4. 392p. - ssynowiec
  5. 390p. - Łukasz Eckert
  6. 387p. - TheLukaszNs
  7. 386p. - rucin93
  8. 382p. - Michal Drewniak
  9. 382p. - Marcin Harasimowicz
  10. 378p. - JMazurkiewicz
  11. 373p. - tokox
  12. 367p. - Jarosław Roszyk
  13. 362p. - adrian17
  14. 359p. - overcq
  15. 350p. - Mawrok
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...