Java描述数据结构之栈&队列

程序 = 数据结构 + 算法

(本文较为基础,仅适合入门)

理解数据结构

数据结构是计算机存储、组织数据的方式;
学好数据结构可以编写出更加优雅,更加有效率的代码;

理解数据结构之栈(stack)

特点:后进先出(First In Last Out —— FILO)
eg. 机枪弹夹
空栈:栈为空时;
压栈(入栈):向栈中存入数据
弹栈(出栈):将数据取出的过程
栈底(bottom):不允许被改变
栈顶(top):随着数据的出入而改变
栈是运算受限的线性表;其限制仅允许在表的一端进行插入和删除操作,不允许在其它任何位置进行增、删、改、查等操作。允许插入删除变化的一端称为栈顶(Top),固定的一端称为栈底(Bottom)。

在这里插入图片描述
出栈
示例代码:

		// 后进先出
		Stack<String> stack = new Stack<String>();
		
		stack.push("杨过");
		stack.push("郭襄");
		stack.push("小龙女");
		System.out.println(stack);
		
		// 弹栈
		String pop = stack.pop();
		System.out.println("弹出了谁" + pop);
		System.out.println("还剩谁:" + stack);

输出结果:

[杨过, 郭襄, 小龙女]
弹出了谁:小龙女
还剩谁:[杨过, 郭襄]

注:若弹出数据长度大于栈,则会出现异常;

理解数据结构之队列(Queue)

先进先出的有序列表(First In First Out —— FIFO)
eg.车过高速公路消费站,排队买票;
队列是一种运算受限的线性表,其限制是仅允许在表的一端进行插入,而在表的另一端进行删除;
头部(front);
尾部(rear);
入列(入队);
出列(出队);
当向队列插入一个元素头部尾部都指向这一元素
在这里插入图片描述
在这里插入图片描述

		// 查看源码可发现 Queue 实现了 Linklist
		// 可使用Linklist 演示
		LinkedList<String> queue = new LinkedList<String>();
		queue.add("孙猴子");
		queue.add("小白龙");
		queue.add("御弟哥哥");
		System.out.println(queue);
		
		String value = queue.pop();
		System.out.println(value);
		System.out.println(queue);

输出结果:

[孙猴子, 小白龙, 御弟哥哥]
孙猴子
[小白龙, 御弟哥哥]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值