双向链表是比较常见的,主要是在链表的基础上添加prev指针,闲话少说直接上代码吧(这个也是网上一个大神的思路,真心不错,条理清楚,逻辑缜密)主要也是为了学习,贴上我所调试成功的代码(Linux环境下)双向链表代码: 1 #include 2 #include 3 4 typedef s...
分类:
编程语言 时间:
2015-04-03 15:06:57
阅读次数:
193
Document类:class Document { public string Title { get; private set; } public string Content { get; private set; } public byte P...
分类:
其他好文 时间:
2015-04-03 06:46:18
阅读次数:
162
一:SPL中的双向链表---SplDoublyLinkedList() 双向链表的操作总结当前节点的操作:rewind()指向bottom,current() 当前节点,next() 下一个节点,prev() 上一个节点。增加节点的操作:push()会插入到top、unshift()会插入到bo.....
分类:
其他好文 时间:
2015-04-02 20:37:21
阅读次数:
205
一、题目 要求输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建新的节点,只能调整树中结点指针的指向。 二叉树结点定义如下:1 struct BinaryTreeNode2 {3 int m_nValue;4 BinaryTreeNode *m...
分类:
编程语言 时间:
2015-03-31 17:19:41
阅读次数:
167
hdu 5193 分块 树状数组 逆序对
题意:
给出n个数,a1,a2,a3,...,an,给出m个修改,每个修改往数组的某个位置后面插入一个数,或者把某个位置上的数移除。求每次修改后逆序对的个数。
限制:
1
思路:
插入和删除用分块来处理,块与块之间用双向链表来维护,每一块用树状数组来求小于某个数的数有多少个。
外层可以使用分块维护下标,这样添加和删除元素的时候,也很...
分类:
编程语言 时间:
2015-03-31 14:50:01
阅读次数:
190
营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况。 Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额。分析营业情况是一项相当复杂的工作。由于节假日,大减价或者是其他情况的时候,营业 额会出现一定的波动,当然一定的...
分类:
其他好文 时间:
2015-03-30 17:55:50
阅读次数:
110
一定要注意swap(x, y),x, y可能相邻!#include #define N 100005#define ll long longint n, m;struct node{ int l, r; node() : l(0), r(0) {} node(int l_, int r_) :...
分类:
其他好文 时间:
2015-03-28 11:30:50
阅读次数:
122
1. 题目
输入一棵二叉搜索树,现在要将该二叉搜索树转换成一个排序的双向链表。而且在转换的过程中,不能创建任何新的结点,只能调整树中的结点指针的指向来实现。
二叉树结点的定义如下:
struct BinaryTreeNode
{
intm_nValue;
BinaryTreeNode*m_pLeft;
BinaryTreeNode*m_pRight...
分类:
其他好文 时间:
2015-03-21 21:22:44
阅读次数:
173
涞源chengyaogen.blog.chinaunix.net一、定义 二叉树(binary tree)是一棵每个结点都不能有多于两个儿子的树。二、数据结构设计 因为一个二叉树结点最多是有两个儿子,所以可以直接链接到他们。树结点的声明在结构上类似双向链表的声明。在声明中,一个结点就是由el...
分类:
其他好文 时间:
2015-03-21 16:51:14
阅读次数:
127
题目大意:给定平面上n个点,一共有k种颜色,要求选定一条线段,并选取线段正上方或正下方的所有点,要求不能出现所有颜色的点,求最多选择多少点
正解是双向链表+树状数组?
让我们来点优雅的做法
由于不能出现所有颜色的点 因此一定有至少一种颜色不出现 我们可以枚举这个不出现的颜色
现在我们搞出所有极大子矩形
这个分治就好了。。。
假设我们现在求的是一条线段下方的点 那么我们考...
分类:
其他好文 时间:
2015-03-20 22:10:33
阅读次数:
176