java栈
-
线性表一种,限制仅在表的一端进行插入和删除操作。其中允许插入和删除的一端称为top,另一端为栈底。
-
栈的使用举例:
- 括号匹配
- 迷宫求解
- 表达式求值
-
基本操作:初始化、判断是否为空、求栈深、读取栈元素、入栈出栈、栈置空
初始化 Stack<Integer> stack = new Stack<>(); Stack<Character> stack = new Stack<>(); 测试栈是否为空 boolen empty() boolen empty() 查看栈顶的对象,但不懂栈中移除他 Object peek() 把项压入堆栈顶部 Object push(Object element) 移除堆栈顶部的对象,并作为此函数的值返回该对象 Object push(Object element)
一些注意点
- isEmpty方法、null以及" " 的区别
-
isEmpty()
- 分配了内存空间,值为空,是绝对的空,是一种有值(值 = 空)
-
" "
- 分配了内存空间,值为空字符串
-
null
- 未分配内存空间,无值,是一种无值(值不存在)
- 对栈操作需要注意栈空的情况
栈的出栈方法pop、peek,在栈不为空时会返回栈顶元素,但是当栈为空时会报出错误。