链式与顺序结构的最大区别在于,插入或删除操作需要移动大量元素。 链表类型:单链表,循环链表,双向链表。 单链表的组成:每个数据元素内包括两个域:数据域和指针域。 单链表的创建方式有两种:一种是头插法和尾插法。 #include <stdio.h> #include <stdlib.h> typede ...
分类:
其他好文 时间:
2021-06-30 18:07:18
阅读次数:
0
1、单链表的整表创建 单链表的整表创建有两种方法、一种是采用头插法、就是始终让新结点在第一个位置。另一种是采用尾插法、每次把新结点都插在终端结点的后面,按照排队时的正常思维,所谓的先来后到。 1.1、尾插法实现 整体思路: 首先定义一个节点p、该节点为头节点。 然后定义一个节点l、代表尾节点。 让p ...
分类:
其他好文 时间:
2021-06-02 18:35:08
阅读次数:
0
顺序存储定义:把逻辑上相邻的数据元素存储在物理上相邻的存储单元中的存储结构(逻辑上相邻,物理上也相邻) 特点:知道某个元素的存储位置就可以计算其他元素的存储位置 头插法建立链表 尾插法建立链表 保持一个指针始终指向最后一个节点,这样就间接记录了新节点的插入地址。从而实现不进行遍历即可进行插入 循环链 ...
分类:
其他好文 时间:
2021-05-24 10:51:44
阅读次数:
0
HashMap 源码分析 0. 前置知识 0.1 位运算 0.2 哈希值、哈希表、哈希函数 哈希值 通过一定的散列算法,把一个不固定长度的输入,转成一个固定长度的输出,输出的结果我们称之为哈希 map中,hash就是一个int值 哈希表: 存储哈希值的数组 -- 存取散列值(哈希值)的一个容器 哈希 ...
分类:
其他好文 时间:
2021-03-10 13:04:15
阅读次数:
0
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> typedef struct ListNode{ int val; ListNode* next; }Node_t, *pNode_t; void print_l ...
分类:
编程语言 时间:
2021-02-03 11:00:00
阅读次数:
0
引言 上文笔者描述了单链表的基本操作,但尾插法在单链表中效率太低,我们可以对单链表进行简单的变形,提高尾端插入元素等操作的效率。 单向循环链表 单向循环链表只需要将普通的单链表首尾相连即可实现。 Python实现: class ListNode(): def __init__(self, val, ...
分类:
其他好文 时间:
2020-11-12 13:33:29
阅读次数:
6
HashMap jdk1.7版本,底层是数组+链表,元素的插入使用头插法,可能形成数据丢失或环形链表。 jdk1.8版本,底层是数组+链表+红黑树,元素的插入使用尾插法,数据覆盖的情况。 扩容机制:LoadFactory默认0.75,创建空数组重新Hash。 resize线程不安全:多线程之间put ...
分类:
编程语言 时间:
2020-08-09 09:22:43
阅读次数:
88
#include<stdio.h> #include<stdlib.h> #include<malloc.h> typedef struct LNode{ int data; struct LNode* next; }LNode,*LinkList; LinkList List_TailInsert ...
分类:
编程语言 时间:
2020-07-19 23:53:50
阅读次数:
108
单链表练习 介绍 链表以结点的方式储存,链式存储 每个结点包含data域,next域 链表的结点可以是连续的,也可以是不连续的 链表分类 带头结点的链表 没有头结点的链表 应用实例 题目:使用带head头的单冋链表实现ˉ水浒英雄排行榜管理完成对英雄人物的増删改査操作。 功能需求 在添加英雄时,直接添 ...
分类:
其他好文 时间:
2020-07-02 23:18:53
阅读次数:
52
JDK1.7和1.8 HashMap区别: 1. ******* 数组+链表 改成了 ****数组+链表或红黑树; 高位使用红黑算法可以提高操作效率 可以说对java大数据操作提高了很多 所以很多面试喜欢问 2.表的插入方式从头插法改成了尾插法,简单说就是插入时,如果数组位置上已经有元素,1.7将新 ...
分类:
其他好文 时间:
2020-05-24 13:38:47
阅读次数:
74