数据结构与算法|队伍、栈、堆

一:队伍

只能在一端添加元素,另一端删除元素

链表可以在任意位置添加删除元素

1.链表实现

1.1创建队伍接口的链表实现类和节点类(内部类)

环形链表,自己指向自己

1.2.实现队伍方法

只要实现,只能尾插,头删除即可

修改:

尾部添加,先判断队伍是否满了

头部删除,判断队伍是否为空

2.环形数组实现

二:栈

队伍两端操作(头删尾插):环链(头结点,尾节点)

栈仅在一端操作 :单链(栈链表仅需要头结点)

1.链表实现

(1)判断栈空栈满

(2)添加节点-头部添加

(3)删除节点-头删

(4)获取栈顶元素

2.数组实现

三:堆

1.堆介绍

1.1.大/小根堆:

2.堆的存储结构

完全二叉树:采用顺序存储结构(数组)的形式来表示完全二叉树,能够充分利用存储空间。

3.建堆

3.1 定义:

如图,堆中的元素排列不符合大顶堆的定义,将其改为符合大顶堆的过程称为建堆。

3.2 建堆算法

下潜:改节点与其子节点比较,小的往下放

如图中:1和6交换

总的交换次数:

4.功能--PriorityQueue实现

4.1 插入元素

4.2删除元素

4.3 获取堆顶元素

5.堆排序(重点)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值