3.索引 1.索引的作用:提高数据查询效率 2.常见索引模型:哈希表、有序数组、搜索树 3.哈希表:键 - 值(key - value)。 4.哈希思路:把值放在数组里,用一个哈希函数把key换算成一个确定的位置,然后把value放在数组的这个位置 5.哈希冲突的处理办法:链表 6.哈希表适用场景: ...
分类:
其他好文 时间:
2020-07-24 21:07:26
阅读次数:
68
1,单链表分为带头结点和不带头结点,带头节点的好处,只有实际写代码后才能体会出来。可以类比顺序表中的哨兵 好处: 1,第1个位置的插入、删除更加方便,带来操作上的统一。 2,对于头插法: 不带头结点的链表,插入第一个结点时,需要特殊处理,删除操作类似. 3,优势2:统一空表和非空表的处理 举例:无头 ...
分类:
其他好文 时间:
2020-07-24 16:29:50
阅读次数:
59
数组:按序号访问元素,连续存储,元素可以有序、也可以无序,用下标来定位元素,元素的数量确定(有上限),按下标访问很快,插入和删除元素、排序的开销比较大(元素的移位操作),数组元素无序时,元素的排序速度比较慢(依次比较),数组元素有序时,元素的查找速度比较慢(二分查找,比无序时快)。 链表:插入、删除 ...
分类:
编程语言 时间:
2020-07-24 15:38:12
阅读次数:
68
数据结构--哈希表(Java) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 介绍 哈希表底层是数组加链表或者是数组加二叉树,一个数组里面有多个链表,通过散列函数来提高效率 代码 package cn.guizimo.hash ...
分类:
编程语言 时间:
2020-07-24 09:40:08
阅读次数:
69
方法一:Map加双向链表 class LRUCache { class Node { public int key, val; Node pre,next; public Node() {} public Node(int k, int v) { key = k; val = v; } } priv ...
分类:
其他好文 时间:
2020-07-23 23:01:59
阅读次数:
105
为了方便,创建头文件ElemType规定操作状态码和数据元素类型以及用于数据元素类型的匹配函数 typedef double ElemType; //操作成功 #define OK 1 //操作错误 #define ERROR 0 //操作异常 #define OVERFLOW -2 //定义元素类 ...
分类:
编程语言 时间:
2020-07-23 16:26:16
阅读次数:
65
问题:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 解决: #方法一: class Solution: def printListFromTailToHead(self, listNode): # write code here ArrayList = [] while listN ...
分类:
其他好文 时间:
2020-07-23 01:36:18
阅读次数:
62
单向环形链表介绍 -》如图所示: 单向环形链表应用场景 Josephu(约瑟夫、约瑟夫环) 问题 Josephu 问题为:设编号为 1,2,… n 的 n 个人围坐一圈,约定编号为 k(1<=k<=n)的人从 1 开始报数,数 到 m 的那个人出列,它的下一位又从 1 开始报数,数到 m 的那个人又 ...
分类:
其他好文 时间:
2020-07-22 23:36:21
阅读次数:
99
题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 1 /* 2 struct ListNode { 3 int val; 4 struct ListNode *next; 5 ListNode(int x) : 6 val(x), next(NU ...
分类:
编程语言 时间:
2020-07-22 20:46:19
阅读次数:
82
此博客链接: 题目链接: 反转链表 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL 题解: 思路: 1.创建一个头节点,使用new ListNode()创建一个新节点数据域 ...
分类:
其他好文 时间:
2020-07-22 20:14:51
阅读次数:
57