实现思路 1,调整front指向队列的第一个元素,front初始值=0 2,调整rear指向队列的最后一个元素的后一个位置,希望空出一个空间作为约定,rear的初始值=0 3,队满,条件: (rear+1) % maxSize = front ,则队满,队列最多可存 maxSize-1个数 4,队空 ...
分类:
其他好文 时间:
2019-09-15 15:24:27
阅读次数:
80
用栈实现队列,完成队列的Push和Pop操作。 队列中的元素为int类型 用栈实现队列,完成队列的Push和Pop操作。 队列中的元素为int类型 用队列实现栈 用队列实现栈 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数、pop()、push(),时间复杂度应为O(1) ...
分类:
编程语言 时间:
2019-09-14 18:34:46
阅读次数:
121
概述 1 LinkedList是List接口的双向链表非同步实现,并允许包括null在内的所有元素。 2 底层的数据结构是基于双向链表的,该数据结构我们称为节点。它也可以被当作堆栈、队列(实现 了List 接口)或双端队列(实现 了Deque 接口)进行操作。 3 双向链表节点对应的类Node的实例 ...
分类:
其他好文 时间:
2019-08-27 19:26:22
阅读次数:
65
1.两个栈实现一个队列 两个栈stack1和stack2, push的时候直接push进stack1,pop时需要判断stack1和stack2中的情况。如果stack2不为空的话,直接从stack2中pop,如果stack2为空,把stack1中的值push到stack2中,然后再pop stac ...
分类:
编程语言 时间:
2019-08-26 21:15:01
阅读次数:
114
主要讲述二叉堆实现及其优化,优先队列实现以及Java语言中的实现及其应用。 ...
分类:
编程语言 时间:
2019-08-24 15:08:31
阅读次数:
91
实现一个线程安全的栈 这里使用数组来存储栈的数据。不足之处在于本例中的Stack可以无限扩容,更好的是初始化时候指定一个最大容量,防止不断扩容申请内存导致内存不够的问题。这里的线程安全使用一个串行队列来保证,实际上也可以通过加锁或者信号量甚至自旋锁来解决。 实现一个线程安全的队列 ...
分类:
编程语言 时间:
2019-08-22 18:29:28
阅读次数:
90
102. 二叉树的层次遍历 https://leetcode-cn.com/problems/binary-tree-level-order-traversal/ 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 解: 利用队列实现bfs,从根节点开始入队,如果左右子 ...
分类:
其他好文 时间:
2019-08-15 21:22:47
阅读次数:
101
1.循环分配器 为在客户群体中共享某一资源(比如多个应用程序共享同一CPU),可以借助队列Q实现一个资源循环分配器。 在以上轮值算法中,首先令所有参与资源分配的客户组成一个队列Q。接下来是一个反复轮回式的调度过程:取出当前位于对头的客户,将资源交给该客户使用;在经过固定的时间后,回收资源,并令该客户 ...
分类:
其他好文 时间:
2019-08-11 17:23:49
阅读次数:
96
一、实现原理如下图所示 环形队列实现需注意以下四点(本质上是和“3、一个简单队列的实现”一样的):(1)往队列中写数据 memcpy(&g_tQue[g_iWritePos],pNode,sizeof(T_QUEUE)); g_iWritePos = (g_iWritePos + 1) % QUEU ...
分类:
编程语言 时间:
2019-08-10 19:18:05
阅读次数:
90
////////////////////////////////////////////////////////////////////////////////////// 10.题目七:用两个栈实现队列// 题目:用两个栈实现一个队列,队列的声明如下:template class CQueue{p... ...
分类:
其他好文 时间:
2019-07-28 13:40:25
阅读次数:
83