一面: hashmap,怎么扩容,怎么处理数据冲突?怎么高效率的实现数据迁移? Linux的共享内存如何实现,大概说了一下。 socket网络编程,说一下TCP的三次握手和四次挥手 同步IO和异步IO的区别? Java GC机制?GC Roots有哪些? 红黑树讲一下,五个特性,插入删除操作,时间复 ...
分类:
编程语言 时间:
2020-05-06 14:10:59
阅读次数:
134
题目: 解答: 此题的正确解法是利用到了一个一维数组和一个 HashMap,其中数组用来保存数字,HashMap 用来建立每个数字和其在数组中的位置之间的映射。 插入操作——先看这个数字是否已经在 HashMap 中存在,如果存在的话直接返回 false,不存在的话,将其插入到数组的末尾,然后建立数 ...
分类:
编程语言 时间:
2020-05-05 17:38:33
阅读次数:
80
设队列头指针为 front,队列尾指针为 rear,队列容量为 maxsize 队空:front== rear 队满: (rear+1) mod maxsize == front ( mod 表示求余运算) 队中元素个数 n=(rear front+maxsize )mod maxsize 入队:r ...
分类:
其他好文 时间:
2020-05-05 11:09:12
阅读次数:
142
1. List 容器的基本概念 1. list 是一个双向链表容器,可高效的进行插入删除元素,他的原理在于每个元素都有两个指针来记录前后两个元素的地址,像火车车厢一样,list 中各个元素在物理存储单元上非连续,是通过指针相连在一起的。 2. 相较于vector的连续线性空间,list会显得复杂许多 ...
分类:
其他好文 时间:
2020-05-04 00:52:48
阅读次数:
52
通用的容器分为三类:顺序性容器、关联式容器和容器适配器。 一、顺序性容器 顺序性容器是一种各元素之间有顺序关系的线性表,除非用插入、删除的操作改变位置,否则元素在容器中的位置与元素本身没有关系,只与操作的时间和地点相关(时间:什么时候添加的元素,地点:元素添加到了那个位置);常用的顺序性容器有:ve ...
分类:
其他好文 时间:
2020-05-03 01:15:12
阅读次数:
79
typedef struct LinkNode{ //链式队列结点 int data; struct LinkNode *next; }LinkNode; typedef struct{ //链式队列 LinkNode *front,*rear; //队列头指针和尾指针 }LinkQueue; vo ...
分类:
其他好文 时间:
2020-05-02 22:44:19
阅读次数:
51
二叉排序树 二叉排序树是为了实现数据的有序排列,并可方便的对树中的数据进行插入和删除操作,提高查找效率。 性质: 若它的左子树不为空,则左子树上的所有值均小于根结点的值 若它的右子树不为空,则右子树上的所有值均大于根结点的值 它的左右子树也分别为二叉排序树 下面说说二叉排序树的查找,插入,删除操作实 ...
分类:
编程语言 时间:
2020-05-02 18:31:34
阅读次数:
55
题目描述 将给定的链表中每两个相邻的节点交换一次,返回链表的头指针例如,给出1->2->3->4,你应该返回链表2->1->4->3。你给出的算法只能使用常量级的空间。你不能修改列表中的值,只能修改节点本身。 Given a linked list, swap every two adjacent ...
分类:
其他好文 时间:
2020-04-29 00:52:16
阅读次数:
76
第三章主要讲了栈和队列,还提到了递归,栈是先进后出,而队列是先进先出的。栈只需要在栈顶操作,就可以实现入栈出栈的操作,而队列需要头指针和尾指针,出队时输出队头,入队时从队尾进入。不过要注意,出栈或者出队列,都要注意是否为空,而入栈和入队列是要注意是否已经满。还有没有定义的时候,要注意初始化,而且栈和 ...
分类:
其他好文 时间:
2020-04-26 22:33:32
阅读次数:
77
栈 首先说一下栈是什么以及和队列区别 栈和队列是两个有序列表,两者之间的区别就是栈是先进后出,而队列先进先出 栈的实现 stl中的栈 stl中的队列 双端队列 可以在队列两端进行插入删除 一道例题 题目链接:https://www.luogu.com.cn/problem/P1044 虽然题目名字叫 ...
分类:
其他好文 时间:
2020-04-25 16:52:36
阅读次数:
68