2015-11-07 1 views
-2

Это метод интерфейса, который я должен реализовать в другом классе, и я не знаю, как его создать. Я должен распечатать стек с помощью связанногоList с аргументом printStream. Внутри класса Node (для linkedList) у меня есть метод getObject().Как распечатать стек с использованием аргумента printStream в java?

import java.io.PrintStream; 
import java.util.NoSuchElementException; 

public interface StringStack { 


    public boolean isEmpty(); 

    public void push(String item); 

    public String pop() throws NoSuchElementException; 

    public String peek() throws NoSuchElementException; 

    /** 
    * print the contents of the stack, starting from the item 
     * on the top, 
    * to the stream given as argument. For example, 
    * to print to the standard output you need to pass System.out as 
    * an argument. E.g., 
    * printStack(System.out); 
    */ 
    public void printStack(PrintStream stream); 

    public int size(); 

} 




public class StringStackImpl implements StringStack { 
    private Node head; 
.... 
    public void printStack(PrintStream stream) {???} 

} 
+2

Как вы хотите, чтобы напечатать стек, 1 объект в строке или все объекты на одной линии? – Zpetkov

+0

@Zpetkov 1 в строке –

+0

В чем проблема, с которой вы столкнулись? Начните с печати данных с головного узла, затем перейдите к следующему узлу и распечатайте его. Повторяйте, пока не останется больше узлов. – Pshemo

ответ

0

Не знаете, как это структура вашего стека, но это нужно сделать:

Node node = head; // top of the stack 

    while(node != null){ 
    stream.println(node.value); 
    stream.flush(); 
    node = node.next; 
    } 
+0

Мне нужно напечатать до данного потока, чтобы он был в то время (head.getObject()! = Stream) ?? –

+0

Вы печатаете каждый объект из своего стека в OutputStream, который является либо файловым, либо консольным стандартным выходом. Я думаю, вам нужно больше узнать о потоках и базовых вводах-выводах. – Zpetkov

Смежные вопросы