一、页目录和槽 接上一篇,现在知道记录在页中按照主键大小顺序串成了单链表。 那么我使用主键查询的时候,最顺其自然的办法肯定是从第一条记录,也就是 Infrimum 记录开始,一直向后找,只要存在总会找到。这种在数据量少的时候还好说,一旦数据多了,遍历耗时一定非常长。 于是,作者又想到了一个好办法,灵 ...
分类:
数据库 时间:
2021-07-26 16:37:12
阅读次数:
0
链式与顺序结构的最大区别在于,插入或删除操作需要移动大量元素。 链表类型:单链表,循环链表,双向链表。 单链表的组成:每个数据元素内包括两个域:数据域和指针域。 单链表的创建方式有两种:一种是头插法和尾插法。 #include <stdio.h> #include <stdlib.h> typede ...
分类:
其他好文 时间:
2021-06-30 18:07:18
阅读次数:
0
做链表提多画图,%99以上都要画图解决 虚拟借点 快慢指针 多指针 1. 输入 1-2-3-4-5-6-5-6;删除掉6的节点 思路:用到虚拟头节点 ,如果是删除的这 head = head.next; 如果不是 newTail.next = head; newTail = head; public ...
分类:
其他好文 时间:
2021-06-28 18:50:03
阅读次数:
0
给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 三种方法:1、暴力遍历 2、双指针(建议) 3、哈希表 1、暴力遍历 特判:如果两个链表其中一个为空,则返回空 思想:利用两个指针,A指针指向一条链表的一个节点,B ...
分类:
其他好文 时间:
2021-06-04 19:32:40
阅读次数:
0
1、单链表的整表创建 单链表的整表创建有两种方法、一种是采用头插法、就是始终让新结点在第一个位置。另一种是采用尾插法、每次把新结点都插在终端结点的后面,按照排队时的正常思维,所谓的先来后到。 1.1、尾插法实现 整体思路: 首先定义一个节点p、该节点为头节点。 然后定义一个节点l、代表尾节点。 让p ...
分类:
其他好文 时间:
2021-06-02 18:35:08
阅读次数:
0
题目 package whale.leetcode.simple; /** * @Author: WhaleFall541 * @Date: 2021/5/29 20:30 */ public class AddTwoSumLinkedList { public static class ListN ...
分类:
其他好文 时间:
2021-06-02 16:21:23
阅读次数:
0
160. 相交链表 Difficulty: 简单 编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表**:** 在节点 c1 开始相交。 示例 1: 输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skip ...
分类:
其他好文 时间:
2021-06-02 16:01:26
阅读次数:
0
题目:编写一个程序,找到两个单链表相交的起始节点。 注意: 如果两个链表没有交点,返回 null. 在返回结果后,两个链表仍须保持原有的结构。 可假定整个链表结构中没有循环。 程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存。 代码: 1 /** 2 * Definition for si ...
分类:
其他好文 时间:
2021-05-24 16:47:52
阅读次数:
0
我们维护一个有序单链表,越靠近链表尾部的结点是越早之前访问的。 当有一个新的数据被访问时,我们从链表头开始顺序遍历链表。 如果此数据之前已经被缓存在链表中了,我们遍历得到这个数据对应的结点,并将其从原来的位置删除,然后再插入到链表的头部。 如果此数据没有在缓存链表中,又可以分为两种情况:如果此时缓存 ...
分类:
编程语言 时间:
2021-05-24 16:22:09
阅读次数:
0
给定一个头结点为 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 1: 输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ...
分类:
其他好文 时间:
2021-05-24 10:30:25
阅读次数:
0