數據結構-單鏈表實現棧

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 ();
	}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章