栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

日撸 Java 三百行学习笔记day14

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

日撸 Java 三百行学习笔记day14

第 14 天: 栈

栈是一种只允许在一端进行插入或删除的线性表。

1、栈的操作端通常被称为栈顶,另一端被称为栈底。
2、栈的插入操作称为进栈(压栈|push);栈删除操作称为出栈(弹栈|pop)。

特点

  栈就像一个杯子,我们只能从杯口放和取,所以栈中的元素是“先进后出”的特点。

存储结构

  顺序存储的栈称为顺序栈;链式存储的栈称为链式栈。

package day10;

public class Stack {
	public static class CharStack {
		
		public static final int MAX_DEPTH = 10;

		
		int depth;

		
		char[] data;

		
		public CharStack() {
			depth = 0;
			data = new char[MAX_DEPTH];
		}// Of the first constructor

		
		public String toString() {
			String resultString = "";
			for (int i = 0; i < depth; i++) {
				resultString += data[i];
			} // Of for i

			return resultString;
		}// Of toString

		
		public boolean push(char paraChar) {
			if (depth == MAX_DEPTH) {
				System.out.println("Stack full.");
				return false;
			} // Of if

			data[depth] = paraChar;
			depth++;

			return true;
		}// Of push

		
		public char pop() {
			if (depth == 0) {
				System.out.println("Nothing to pop.");
				return '';
			} // Of if

			char resultChar = data[depth - 1];
			depth--;

			return resultChar;
		}// Of pop

		
		public static void main(String args[]) {
			CharStack tempStack = new CharStack();

			for (char ch = 'a'; ch < 'm'; ch++) {
				tempStack.push(ch);
				System.out.println("The current stack is: " + tempStack);
			} // Of for ch

			char tempChar;
			for (int i = 0; i < 12; i++) {
				tempChar = tempStack.pop();
				System.out.println("Poped: " + tempChar);
				System.out.println("The current stack is: " + tempStack);
			} // Of for i
		}// Of main
		
	}// Of CharStack
	


}

得出结果:

 

今天的学习与之前对链表的学习有很多相似之处,比如构造的结构方面,但对于出栈入栈还是有它的不同之处的,都是在栈顶进行操作。对于出栈和进栈包括depth的指向我其实还有点疑问,然后根据正确代码我思考了一下,下面用我画的图例表达(可能不太对)

 对于进栈有:;                                                      

对于出栈有:;

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/756050.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号