- 博客(5)
- 收藏
- 关注
原创 数据结构之使用双队列实现栈
使用队列实现栈的push、pop、top、empty这四个接口功能 队列的特点:先进先出,和栈先进后出相反,那么怎么使用队列实现相反操作顺序的栈呢? 其主要原理是在出栈时将原队列queue1除了队首的元素之外所有元素都按照顺序依次缓存到另外一个队列queue2,单独对队列末端元素出队并记录为e,最后将queue2队列元素全部放回原队列并返回末端元素e 这里考虑top()查看栈顶的方法会经常调用,使用变量Integer top; 对其缓存,把复杂度降为O(1);未改动的top()操作文末贴出。 package
2021-03-28 15:12:29
188
原创 数据结构之数组实现循环队列两种方式
使用数组实现循环队列,这里实现了add和poll两个关键接口 普通数组实现队列时,数组末端元素占满后需要检查首端是否占满,若未占满进行整体向前复制,若都占满则进行扩容; 循环队列优势在于仅在扩容时才进行数组复制操作,其余仅仅是根据tail索引添加元素,但会使用一个多余空间记录下一次添加时的索引,这样很好理解当first=tail时队列为空。 /** * 数组实现循环队列普通方式 * * 若使用first和last记录队首和队尾元素所在索引,当first=last时无法区分存在一个元素还是队列为空,需要
2021-03-28 01:57:17
493
2
原创 数据结构之双向链表实现LinkedList,小改迭代器遍历
数据结构之双向链表实现LinkedList,小改迭代器遍历 内容包括继承Collection接口实现基本的for循环、stream流功能 Itr内部类实现Iterator迭代器接口, Collection接口Spliterator spliterator()方法为并行流stream.parallel()提供分流器。 package com.my.algorithm.lru; import java.util.*; import java.util.function.Consumer; import jav
2021-03-24 23:30:36
168
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人