双向队列 PHP 版

PHP ,
答案 /** * 双向队列PHP版 */ class DoubleEndedQueue { private $queue = []; public function addHead($item) { return array_unshift($this->queue, $item); } public function addTail($item) { return array_push($this->queue, $item); } public function removeHead() { return …

反转单向链表Java版

算法 , ,
答案 public class Node { public int value; public Node next; public Node(int value) { this.value = value; } public Node reverseList(Node head) { Node prev = null; // 用于暂存前面的节点 Node next = null; // 用于暂存后面的节点 while (head != null) { next = head.next; // 把…

数组和hash表的区别是什么?

答案 数组是编程语言提供的一种数据类型,即用一组连续的内存空间来存放数据,可以通过一个首地址,和一个数组下标,直接访问这组内存空间中的任意位置。 哈希表是数据结构这门学科中的概念,是以数组为存储方式,实现的一种可以快速查找数据的数据结构。它是将数据的值通过一个映射函数(也…

Redis中的有序集合是怎么实现的,数据结构是怎么样的?

Redis, 数据结构 ,
答案 Redis使用跳跃表作为有序集合键的的底层实现,如果一个有序集合包含的元素数量比较多,又或者有序集合中元素的成员是比较长的字符串时,Redis就会使用跳跃表来作为有序集合键的底层实现。 Redis只在两个地方用到了跳跃表,一个是实现有序集合键,另一个是在集群节点中用作内部数据结构。…