package 數據結構;
public class Link
{
public int data ;
public Link next ;//記錄下一個節點
public Link ( int data )
{
this.data = data ;
}
}
package 數據結構;
public class LinkStack
{
private Link top ;//棧頂
//入棧
public void push ( int data )
{
Link newLink = new Link ( data ) ;
// 如果爲空 , 直接將新節點變爲棧頂
if ( isEmpty () )
{
top = newLink ;
return ;//退出
}
//不爲空,將新節點的next指向原棧頂
newLink.next = top ;
//新節點成爲棧頂
top = newLink ;
}
//出棧
public Link pop ()
{
if ( isEmpty () )
{
System.out.println ( "當前棧中沒有元素" );
return null;
}
Link temp = top ;//存放要出棧的節點
top = top.next ;//棧頂元素變爲原棧頂的next
return temp ;
}
//判斷是否爲空
public boolean isEmpty ()
{
return top == null ;
}
//遍歷
public void display ()
{
if ( isEmpty () )
{
System.out.println ( "棧爲空" );
return ;
}
Link current = top ;//記錄遍歷到哪兒
while ( current != null )
{
System.out.print ( current.data + " " );
current = current.next ;
}
System.out.println ();
}
}