왕초보 스택질문 ^_^;;
딸기향
import java.util.*;
import java.io.*;
//스택을 클래스로 정의
class Stack
{
private Vector items;
public Stack(){
items = new Vector(10);
}
public Object push(Object item){
items.addElement(item);
return item;
}
public synchronized Object pop(){
int len = items.size();
Object obj = null;
if(len==0)
throw new EmptyStackException();
obj = items.elementAt(len - 1);
items.removeElementAt(len - 1);
return obj;
}
public boolean isEmpty() {
if(items.size() == 0)
return true;
else
return false;
}
public boolean top() {
if(items.size() == 10)
return true;
else
return false;
}
protected void finalize() throws Throwable {
items =null;
super.finalize();
}
}
public class TestStack {
public static void main(String[] args)
{
System.out.println( 스택 예제 );
Stack stack = new Stack() ;
for(int i=0 ; i10 ; i++) {
stack.push(String.valueOf(i));
System.out.println( 스택 입력 : +i);
}
for(int i=0 ; i10 ; i++) {
//stack.pop();
System.out.println( 스택 출력 : +stack.pop());
}
}
}
결과 화면
스택을 정의하는 클래스를 실행 시킨 결과 입니다...^_^;;
제가 묻고 싶은것은 메모리를 오버플로우 했을때나pop할 데이터가 없을때
If문 같은걸로 메모리가 꽉찼으면
pop데이터가 없으면 메세지를 출력하는 것을추가 하고 싶은데요..
public Object push(Object item){
이정도 쯤에서if문으로 메모리가 꽉찼으면 println(메모리가 꽉 찼습니다)
else면실행....
items.addElement(item);
return item;
하면 될거 같은데...근데 문제는 if 문의 조건에 (메모리가 꽉 찼으면...).이라는 메소드같은걸 모르겠습니다...
그리고 pop 일때도....
그리고 꽉차고 데이터가 없는걸 확인 할려면 어떤 식으로 문장을 바꾸고 실행해야 하죠?
고수님들의 조언 부탁드립니다... ^_^
-
똥덩어리
ㅎㅎㅎ 드디어 풀었습니다...
-
미르
저도 거기 까진 해봤는데....계속 오류가 나서요,.구체적 문장을 알고자 질문드렸습니다..^_^;;지송
-
미쁘다
int a = item.lenght(); 해서요 총 스텍의 크기를 알아내고요, 데이터가 있고 없고를 확인하실려면.. 포문과 이프문으로 값이 있는지를 확인해서 하면 되지 않을까요? =_=; 아는게 허접해서요 죄송;;