栈与队列
栈
一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。
方法
public static void main(String[] args){ Stack<Integer> stack = new Stack<>(); //入栈 stack.push(1); stack.push(2); stack.push(3); stack.push(4); System.out.println("栈中有效元素个数 : "+ stack.size()); // 输出 4 System.out.println("获取栈顶元素 : "+stack.peek()); // 获取栈顶元素,但是不出栈,栈中元素不变 stack.pop(); // 出栈 元素 4 出栈 ,栈中剩余元素 3,2,1 System.out.println("获取栈顶元素 : " + stack.pop()); // 获取栈顶元素,出栈, 此时栈中剩余 2,1两个元素 System.out.println("栈中有效元素个数 : "+ stack.size()); // 输出 2 System.out.println("stack是否为空 : "+ stack.isEmpty()); // 判断栈中是否为空 }
队列
队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out)
入队列:进行插入操作的一端称为队尾(Tail/Rear)
出队列:进行删除操作的一端称为队头(Head/Front)
方法
public static void main(String[] args) { Queue<Integer> q = new LinkedList<>(); //插入元素 q.offer(1); q.offer(2); q.offer(3); q.offer(4); q.offer(5); System.out.println("元素个数 : "+q.size()); // 获取元素个数 输出5 System.out.println("获取队头元素 : "+q.peek()); // 获取队头元素,但不删除元素 q.poll(); System.out.println("出队列元素 : "+q.poll()); // 从队头出队列,并将删除的元素返回 if(q.isEmpty()){ System.out.println("队列空"); }else{ System.out.println("元素个数 : "+q.size()); } }
双端队列
为了创建ArrayDeque双端队列,我们必须导入java.util.ArrayDeque包。
ArrayDeque<Type> animal = new ArrayDeque<>();
方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具