代码改变世界

链表反转

2018-11-05 22:21 by YihangZhou, 116 阅读, 0 推荐, 收藏, 编辑
摘要:反转一个单链表。 示例: 阅读全文

队列:队列在有限线程池中的应用

2018-11-05 20:24 by YihangZhou, 280 阅读, 0 推荐, 收藏, 编辑
摘要:一、什么是队列?1.先进者先出,这就是典型的“队列”结构。2.支持两个操作:入队enqueue(),放一个数据到队尾;出队dequeue(),从队头取一个元素。3.所以,和栈一样,队列也是一种操作受限的线性表。 二、如何实现队列? 一、数组实现public class ArrayQueue {//存 阅读全文

栈的概念

2018-11-04 20:48 by YihangZhou, 184 阅读, 0 推荐, 收藏, 编辑
摘要:1.内存中的堆栈和数据结构堆栈不是一个概念,可以说内存中的堆栈是真实存在的物理区,数据结构中的堆栈是抽象的数据存储结构。 内存空间在逻辑上分为三部分:代码区、静态数据区和动态数据区,动态数据区又分为栈区和堆区。代码区:存储方法体的二进制代码。高级调度(作业调度)、中级调度(内存调度)、低级调度(进程 阅读全文

判断一个链表是否有环

2018-11-04 19:40 by YihangZhou, 159 阅读, 0 推荐, 收藏, 编辑
摘要:给定一个链表,判断链表中是否有环。 可以通过快慢指针,当快指针为NULL时就说明没有环,,当快指针追上慢指针,就说明有环。 public boolean hasCycle(ListNode head) { if (head == null || head.next == null) { return 阅读全文

合并两个有序链表(注意空指针异常)

2018-11-04 19:01 by YihangZhou, 511 阅读, 0 推荐, 收藏, 编辑
摘要:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 要注意判断两个结点是否为空结点,不然会出现空指针异常 /** * Definition for singly-linked list. * public class ListNode { * int val 阅读全文

删除链表倒数第n个结点

2018-10-30 22:46 by YihangZhou, 166 阅读, 0 推荐, 收藏, 编辑
摘要:一次遍历算法 算法 算法可以只使用一次遍历。我们可以使用两个指针而不是一个指针。第一个指针从列表的开头向前移动 n+1 步,而第二个指针将从列表的开头出发。现在,这两个指针被 n 个结点分开。我们通过同时移动两个指针向前来保持这个恒定的间隔,直到第一个指针到达最后一个结点。此时第二个指针将指向从最后 阅读全文

链表的学习

2018-10-29 22:02 by YihangZhou, 162 阅读, 0 推荐, 收藏, 编辑
摘要:1.Java里的LinkHashMap集合是利用了双向链表。 2.数组简单易用,在实现上使用的是连续的内存空间,可以借助CPU的缓存机制,预读数组中的数据,所以访问效率更高。而链表在内存中并不是连续存储,所以对CPU缓存不友好,没办法有效预读。 3.Java里的ArrayList容器的动态扩容在数据 阅读全文

集合的接口与实现分离

2018-10-22 22:46 by YihangZhou, 293 阅读, 0 推荐, 收藏, 编辑
摘要:1.队列接口的最简形式如下: public interface Queue<E> { void add(E element); E remove(); int size(); } 2.这个接口并没说明队列是怎么实现的,队列通常有两种实现方式,一种使用循环数组,一种是链表。 每一种实现都可以通过一个实 阅读全文
上一页 1 ··· 7 8 9 10 11