双向链表与单链表的插入操作的区别 双向链表因为存在前驱指针和后继指针所以需要修改的指针多于单链表,但指针改动的顺序同样重要 单链表的插入 eg:在节点p的后面插入指针s 注意! 顺序不能调换,否则在将p->next指向s后,原来由p->next指向的节点将会迷失在内存中,很难找到! 双向循环链表的插 ...
分类:
编程语言 时间:
2018-11-15 11:00:04
阅读次数:
258
在网上下载了一个用Java实现的数据结构的视频, 看了前三个视频, 感觉收获很大, 今天花了接近三小时在Java的数据结构上. 课程的目录如下: 第01讲:数组第02讲:简单排序第03讲:栈和队列第04讲:链表第05讲:双端链表和双向链表第06讲:递归的应用第07讲:递归的高级应用第08讲:希尔排序 ...
分类:
编程语言 时间:
2018-11-15 00:11:39
阅读次数:
120
从这个月开始得准备春招的东西,所以打算重新学习数据结构与算法,以后的博客就以这个为主。 今天是线性结构,数组和单链表没有什么特别的,所以实现一个双向链表。 代码实现与测试: DoubleLinkNode: ...
分类:
编程语言 时间:
2018-11-02 16:00:16
阅读次数:
173
我每次都想选那个最大的、或者是它旁边的两个一起选,如果这两个一起选会大于那个最大的的话 那我就先把那个最大的选了,再提供一个反悔的选项(类似于网络流的思路?),就是我可以再把种的树换成它旁边那两个,也是相当于又多种了一个,这个的权值是v[l]+v[r]-v[x] 所以用一个双向链表维护这个l、r,用 ...
分类:
其他好文 时间:
2018-11-01 11:40:27
阅读次数:
142
链接:https://www.nowcoder.com/practice/947f6eb80d944a84850b0538bf0ec3a5?tpId=13&tqId=11179&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/quest ...
分类:
编程语言 时间:
2018-10-30 23:52:54
阅读次数:
242
from collections import deque class TreeNode(object): def __init__(self, x): self.val = x self.left = None self.right = None class Tree(object): """ 非... ...
分类:
编程语言 时间:
2018-10-30 14:46:10
阅读次数:
176
题目:二叉搜索树与双向链表 要求:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 解题代码: ...
分类:
其他好文 时间:
2018-10-30 13:52:01
阅读次数:
181
list概述 list相对于vector复杂得多,list是一个双链表,对于插入元素、删除元素,list都相对比较简单 list节点 list迭代器 list迭代器必须有能力指向list的节点,并有能力进行正确的递增、递减、取值、成员存取等操作,同时list是双向链表,迭代器必须具备前移、后移的能力 ...
分类:
其他好文 时间:
2018-10-28 20:51:36
阅读次数:
238
本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 思路 二叉搜索树、排序链表,想到使用中序遍历。 要实现双向链表,必须知道当前结 ...
分类:
编程语言 时间:
2018-10-27 13:33:09
阅读次数:
195
零、时间轮定义简单说说时间轮吧,它是一个高效的延时队列,或者说定时器。实际上现在网上对于时间轮算法的解释很多,定义也很全,这里引用一下朱小厮博客里出现的定义:参考下图,Kafka中的时间轮(TimingWheel)是一个存储定时任务的环形队列,底层采用数组实现,数组中的每个元素可以存放一个定时任务列表(TimerTaskList)。TimerTaskList是一个环形的双向链表,链表中的每一项表示
分类:
编程语言 时间:
2018-10-26 22:24:51
阅读次数:
356