public ArrayStack(int stackSize)
{
top = -1;
this.stackSize = stackSize;
itemArray = new char[this.stackSize];
}
top
index는 -1로 설정한다.public boolean isEmpty()
{
return (top == -1);
}
public boolean isFull()
{
return (top == stackSize -1);
}
isEmpty()
: 스택의 현재 index를 나타내는 top을 이용해, 스택이 비었는지 확인한다.isFull()
: 스택의 top을 배열의 크기와 비교하여 스택이 꽉 찼는지 확인한다.public void push(char item)
{
if(isFull())
{
System.out.println("stack full!");;
}
else
{
itemArray[++top] = item;
}
}
isFull
메소드로 확인한다.top
을 증가시키고, item
를 넣는다.public char pop()
{
if(isEmpty())
{
System.out.println("stack empty!");
return 0;
}
else
{
return(itemArray[top--]);
}
}
isEmpty
메소드로 확인한다.top
index의 값을 반환하고, top
을 감소시킨다.public void delete()
{
if(isEmpty())
{
System.out.println("stack empty!");
}
else
{
top--;
}
}
isEmpty
메소드로 확인한다.top
을 감소시켜, 자료를 제거만 한다.public char peek()
{
if(isEmpty())
{
System.out.println("stack empty!");
return 0;
}
else
{
return itemArray[top];
}
}
isEmpty
메소드로 확인한다.down
멤버는, 해당 노드의 바로 아래 노드를 가리킨다.public boolean isEmpty()
{
return (top == null);
}
public void push(char data)
{
StackNode newNode = new StackNode();
newNode.data = data;
newNode.down = top;
top = newNode;
}
newNode
의 down
이 원래 top
를 가리키도록 한다.newNode
를 새로운 top
으로 지정한다public void delete()
{
if(isEmpty())
{
System.out.println("stack empty!");
}
else
{
top = top.down;
}
}
top
만 아래로 이동시킨다.public char peek()
{
if(isEmpty())
{
System.out.println("stack empty!");
return 0;
}
else
{
return top.data;
}
}
top
을 움직이지 않고, top
에 있는 자료만 반환한다.[자바로 배우는 쉬운 자료구조] ,한빛아카데미