一、页目录和槽 接上一篇,现在知道记录在页中按照主键大小顺序串成了单链表。 那么我使用主键查询的时候,最顺其自然的办法肯定是从第一条记录,也就是 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
顺序表是线性表的实现方式之一,其特点是逻辑上相邻的元素在物理上也相邻。顺序表一般使用数组实现。因此顺序表可以随机访问,时 间复杂度为O(1)。但插入和删除元素时,由于线性表的有序性,要移动大量元素,时间复杂度为O(n). 本代码拟使用动态分配空间的方式存储顺序表元素。 一个顺序表结构类型如下: 1 ...
分类:
其他好文 时间:
2021-06-28 17:56:32
阅读次数:
0
栈的链表的操作和线性表的链式存储结构差不多。 我们用图来形象表达一下 线性表的顺序存储结构: 链栈: 链栈的基本操作有栈的初始化、插入数据、删除数据、遍历栈 对应的代码为: //栈的初始化 int InitStack(Stack *stack){ stack->top=stack->bottom=N ...
分类:
其他好文 时间:
2021-06-11 18:10:14
阅读次数:
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
一、什么是链表? 1.和数组一样,链表也是一种线性表。 2.从内存结构来看,链表的内存结构是不连续的内存空间,是将一组零散的内存块串联起来,从而进行数据存储的数据结构。 3.链表中的每一个内存块被称为节点Node。结点除了存储数据外,还需记录链上下一个结点的地址,即后继指针next。 二、为什么使用 ...
分类:
编程语言 时间:
2021-05-25 17:39:06
阅读次数:
0