黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

Java堆棧

鏈棧的實現

使用鏈表作為棧的存儲結構, 有時也稱為鏈棧;

棧只允許在線性表的一端進行操作, 可以選擇鏈表的頭部作為棧頂;

不管是入棧/出棧都在鏈表的首結點上進行。

/**
 * 棧的鏈式存儲
 * @author 北京動力節點老崔
 */
public class MyLinkStack implements MyStack {
	private Node top; 			//存儲棧頂的引用
	private int size; 			//保存堆棧中元素的個數
	
	// 返回堆棧元素的個數
	@Override
	public int getSize() {
		return size;
	}

	// 判斷堆棧是否為空
	@Override
	public boolean isEmpty() {
		return size == 0;
	}

	// 入棧操作
	@Override
	public void push(Object e) {
		//根據元素生成結點,插入到鏈表的頭部
		Node pNode = new Node(e, top);
		//修改top棧頂指針指向新的結點
		top = pNode;
		size++;
	}

	// 出棧
	@Override
	public Object pop() {
		//先判斷堆棧是否為空
		if (size < 1 ) {
			throw new StackOverflowError("棧已空");
		}
		Object oldData = top.data; 		//保存原來棧頂元素
		top = top.next; 		//棧頂指針后移
		size--;
		return oldData;
	}

	// 返回棧頂元素
	@Override
	public Object peek() {
		// 先判斷堆棧是否為空
		if (size < 1) {
			throw new StackOverflowError("棧已空");
		}
		return top.data;
	}
	
	@Override
	public String toString() {
		// 把鏈表中各個結點的數據給返回
		StringBuilder sb = new StringBuilder();
		sb.append("[");
		for( Node pNode = top; pNode!=null; pNode= pNode.next) {
			sb.append(pNode.data);
			//數據元素之間使用逗號分隔
			if ( pNode.next != null) {
				sb.append(",");
			}
		}
		sb.append("]");
		return sb.toString();
	}

	//定義一個內部類,描述 鏈表中的結點
	private class Node{
		Object data; 		//存儲數據
		Node next;			//存儲下個結點的引用
		public Node(Object data, Node next) {
			super();
			this.data = data;
			this.next = next;
		}
		
	}
}

 

全部教程
主站蜘蛛池模板: 人人莫人人爽人人爽 | 欧美.亚洲.日本一区二区三区 | 男女上下猛烈动态图午夜 | 午夜寂寞网 | 香蕉乱码成人久久天堂爱免费 | 国产色婷婷精品综合在线手机播放 | 日韩中文字幕免费版 | 97超级碰 | 护士bd| 免费的黄色一级片 | 久久五月天综合 | 免费黄色一级 | 手机看片a永久免费看大片 手机看片91精品一区 | 五月天精品视频播放在线观看 | 全免费观看a级毛片 | 国产亚洲欧美日本一二三本道 | 另类第一页 | 色播视频在线观看 | av毛片在线看 | 男女男精品视频在线播放 | 天天射天天草 | 成人黄色片视频 | 久久亚洲最大成人网4438 | 国产精选在线播放 | 玖玖在线精品 | 欧美一级三级在线观看 | 欧美亚洲另类在线 | 国产综合色在线视频 | 国产 日韩 欧美 综合 | 午夜在线免费观看视频 | 激情丁香六月 | 毛片网站在线观看 | 成人深夜视频在线观看 | www国产永久免费视频看看 | 手机看片日韩在线 | 色天天综合网色鬼综合 | 欧美国产91 | 国产成人午夜性a一级毛片 国产成人午夜视频 | 成人性欧美丨区二区三区 | 香蕉草草久在视频在线播放 | 精品亚洲福利一区二区 |