- 博客(5)
- 收藏
- 关注
原创 数据结构之使用双队列实现栈
使用队列实现栈的push、pop、top、empty这四个接口功能队列的特点:先进先出,和栈先进后出相反,那么怎么使用队列实现相反操作顺序的栈呢?其主要原理是在出栈时将原队列queue1除了队首的元素之外所有元素都按照顺序依次缓存到另外一个队列queue2,单独对队列末端元素出队并记录为e,最后将queue2队列元素全部放回原队列并返回末端元素e这里考虑top()查看栈顶的方法会经常调用,使用变量Integer top; 对其缓存,把复杂度降为O(1);未改动的top()操作文末贴出。package
2021-03-28 15:12:29 173
原创 数据结构之数组实现循环队列两种方式
使用数组实现循环队列,这里实现了add和poll两个关键接口普通数组实现队列时,数组末端元素占满后需要检查首端是否占满,若未占满进行整体向前复制,若都占满则进行扩容;循环队列优势在于仅在扩容时才进行数组复制操作,其余仅仅是根据tail索引添加元素,但会使用一个多余空间记录下一次添加时的索引,这样很好理解当first=tail时队列为空。/** * 数组实现循环队列普通方式 * * 若使用first和last记录队首和队尾元素所在索引,当first=last时无法区分存在一个元素还是队列为空,需要
2021-03-28 01:57:17 484 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 163 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人