update dir
This commit is contained in:
+8
-3
@@ -4,13 +4,19 @@
|
||||
ZipList 压缩列表 redis 中的 sset(有序集合) 使用跳表来实现,为什么不是用红黑树,而是跳表实现sset,带着这样的疑问,有了本文。
|
||||
|
||||
|
||||
## 跳表理解
|
||||
## 理解
|
||||
|
||||
|
||||
有哪些应用场景?
|
||||
|
||||
|
||||
## 跳表的结构
|
||||
|
||||
#### 为什么使用
|
||||
|
||||
|
||||
|
||||
|
||||
## 结构
|
||||
|
||||
|
||||
|
||||
@@ -19,7 +25,6 @@ ZipList 压缩列表 redis 中的 sset(有序集合) 使用跳表来实现,为
|
||||
|
||||
|
||||
|
||||
## sset 为什么使用 跳表
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
* 2个链表合并
|
||||
|
||||
|
||||
#### 判断俩个链表是否相交
|
||||
## 判断俩个链表是否相交
|
||||
|
||||
给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。为了简化问题,我们假设俩个链表均不带环。
|
||||
|
||||
@@ -18,16 +18,17 @@
|
||||
2.如果需要求出俩个链表相交的第一个节点列?
|
||||
|
||||
|
||||
#### 输出两个非降序链表的并集
|
||||
## 输出两个非降序链表的并集
|
||||
|
||||
请修改append函数,利用这个函数实现:
|
||||
|
||||
两个非降序链表的并集,1->2->3 和 2->3->5 并为 1->2->3->5 。另外只能输出结果,不能修改两个链表的数据。
|
||||
|
||||
|
||||
#### 输出链表中倒数第k个结点
|
||||
## 输出链表中倒数第k个结点
|
||||
|
||||
题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。
|
||||
|
||||
链表结点定义如下:
|
||||
struct ListNode
|
||||
{
|
||||
@@ -36,7 +37,7 @@ struct ListNode
|
||||
};
|
||||
|
||||
|
||||
#### 链表排序
|
||||
## 链表排序
|
||||
|
||||
Given a head pointer pointing to a linked list ,please write a function that sort the list
|
||||
in increasing order. You are not allowed to use temporary array or memory copy (微软面试题)
|
||||
@@ -52,7 +53,7 @@ Node * sort_link_list_increasing_order (Node *pheader):
|
||||
```
|
||||
|
||||
|
||||
#### 给定单链表,检测是否有环。
|
||||
## 给定单链表,检测是否有环。
|
||||
|
||||
使用两个指针p1,p2从链表头开始遍历,p1每次前进一步,p2每次前进两步。如果p2到达链表尾部,说明无环,否则p1、p2必然会在某个时刻相遇(p1==p2),从而检测到链表中有环。
|
||||
|
||||
@@ -75,7 +76,7 @@ p->next=NULL。此时,原单链表可以看作两条单链表,一条从head
|
||||
于是运用题二的方法,我们找到它们的第一个交点即为所求。
|
||||
|
||||
|
||||
#### 删除链表中的p节点
|
||||
## 删除链表中的p节点
|
||||
|
||||
只给定单链表中某个结点p(并非最后一个结点,即p->next!=NULL)指针,删除该结点。
|
||||
|
||||
@@ -86,13 +87,13 @@ p->next=NULL。此时,原单链表可以看作两条单链表,一条从head
|
||||
接下来将p中的数据copy入q中,然后再将要插入的数据记录在p中。都可以做到0(1)复杂度
|
||||
|
||||
|
||||
#### 链表反转
|
||||
## 链表反转
|
||||
|
||||
三个指针,遍历一遍(0(n)复杂度
|
||||
|
||||
|
||||
|
||||
#### 复杂链表的复制
|
||||
## 复杂链表的复制
|
||||
|
||||
题目:有一个复杂链表,其结点除了有一个m_pNext指针指向下一个结点外,
|
||||
还有一个m_pSibling指向链表中的任一结点或者NULL。其结点的C++定义如下:
|
||||
@@ -110,7 +111,7 @@ p->next=NULL。此时,原单链表可以看作两条单链表,一条从head
|
||||
|
||||
|
||||
|
||||
#### 找出两个链表的第一个公共结点
|
||||
## 找出两个链表的第一个公共结点
|
||||
|
||||
题目:两个单向链表,找出它们的第一个公共结点。链表的结点定义为:
|
||||
```
|
||||
@@ -131,7 +132,7 @@ struct ListNode
|
||||
|
||||
|
||||
|
||||
#### 从尾到头输出链表
|
||||
## 从尾到头输出链表
|
||||
|
||||
输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下:
|
||||
|
||||
@@ -147,7 +148,7 @@ struct ListNode{
|
||||
思路三: 递归实现,将printf语句放在递归调用后面。果然妙极。。
|
||||
|
||||
|
||||
#### 在O(1)时间内删除链表结点
|
||||
## 在O(1)时间内删除链表结点
|
||||
题目:给定链表的头指针和一个结点指针,在O(1)时间删除该结点。链表结点的定义如下:
|
||||
|
||||
```
|
||||
@@ -165,25 +166,26 @@ void DeleteNode(ListNode* pListHead, ListNode* pToBeDeleted);
|
||||
保存下一个节点的值tmp,删除下一个节点,当前节点=tmp
|
||||
|
||||
|
||||
#### 将两链表中data值相同的结点删除
|
||||
## 将两链表中data值相同的结点删除
|
||||
|
||||
|
||||
有双向循环链表结点定义为:
|
||||
|
||||
|
||||
```
|
||||
struct node{
|
||||
int data;
|
||||
struct node *front,*next;
|
||||
};
|
||||
|
||||
````
|
||||
```
|
||||
|
||||
有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除。
|
||||
|
||||
|
||||
|
||||
|
||||
#### 链表和数组的区别在哪里?
|
||||
## 链表和数组的区别在哪里?
|
||||
|
||||
分析:主要在基本概念上的理解。
|
||||
但是最好能考虑的全面一点,现在公司招人的竞争可能就在细节上产生,
|
||||
@@ -191,3 +193,16 @@ struct node{
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
##堆和栈
|
||||
# 堆和栈
|
||||
|
||||
|
||||
栈的数据结构
|
||||
@@ -100,6 +100,9 @@
|
||||
|
||||
|
||||
|
||||
[九度OJ](http://ac.jobdu.com/index.php)
|
||||
[leetcode 题目](https://leetcode.com/)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
|
||||
题目来自[leetcode](https://leetcode.com/)
|
||||
|
||||
|
||||
[LeetCode题解C++版](https://github.com/soulmachine/leetcode), 151道题完整版
|
||||
|
||||
#### Minimum Height Trees
|
||||
|
||||
|
||||
|
||||
#### Additive Number
|
||||
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
|
||||
题目来自 [九度OJ](http://ac.jobdu.com/index.php)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user