List-概述: 列表List是一个线性链表结构(Double—Linked Lists,双链表),它的数据由若干个节点构成,每一个节点都包括一个信息块Info(即实际存储的数据)、一个前驱指针Pre和一个后驱指针Post。它无需分配指定的内存大小且可以任意伸缩,这是因为它存储在非连续的内存空间中....
分类:
其他好文 时间:
2015-05-30 18:05:13
阅读次数:
132
无序查找:template //在无序列表内节点p(可能是trailer)的n个(真)前驱中,找到等于e的最后者
ListNodePosi(T) List::find(T const& e, int n, ListNodePosi(T) p) const { //0<=n<=rank(p)<_size
while (0 < n--) //对于p的最近的n个前驱,...
分类:
其他好文 时间:
2015-05-29 15:48:11
阅读次数:
156
拓扑排序算法思想
1、在AOV网络中选一个没有直接前驱的顶点, 并输出之;
2、从图中删去该顶点, 同时删去所有它发出的有向边;
3、重复以上步骤, 直到
◆ 全部顶点均已输出,拓扑有序序列形成,拓扑排序完成;
◆ 或者图中还有未输出的顶点,但已跳出处理循环。这说明图中还剩下一些顶点,它们都有直接前驱,再也找不到没有前驱的顶点了。这时AOV网络中必定存在有向环。
用...
分类:
编程语言 时间:
2015-05-27 17:20:45
阅读次数:
155
splay伸展树主要有两种操作形式
(1)正常的二叉树插入形式
功能:a、查找 b、求最大值 c、最小值 d、求前驱 e、求后继 f、删点 g、合并splay树
(这里的删除直接利用splay树的结点下标)
(2)区间形式 (插入是以区间形式插入的)
区间形式的伸展树相当于线段树,支持线段树的所有操作,并且还支持区间插入这个功能,
比如操作区间[a,b]...
分类:
其他好文 时间:
2015-05-25 16:36:14
阅读次数:
126
http://acm.hdu.edu.cn/showproblem.php?pid=1026求起点到终点的最少花费,输出路径的时候麻烦一点,借鉴了别人的思路,用dfs 递归打印出路径。用额外一个二维数组标记当前点的前驱,因为点是一个坐标,那么可以用 s=x*m+y 映射成一个点就可以了。这样知道这个...
分类:
其他好文 时间:
2015-05-24 11:35:50
阅读次数:
108
线性表了有如下几个特征:1.集合中必存在唯一的一个"第一个元素";2.集合中必存在唯一的一个"最后的元素";3.除最后元素之外,其它数据元素均有唯一的"后继";4.除第一元素之外,其它数据元素均有唯一的"前驱"。线性表的顺序表示指的是用物理上的一段连续的地址来存储数据元素。如果第一个元素的在内存上的...
分类:
其他好文 时间:
2015-05-24 01:21:20
阅读次数:
155
核心思想:以起始原点为中心,想外层扩展,知道扩展到重点为止。设到A点的最短路径上,A点前驱节点为B,则该路径包含到达节点B的最短路径。S集合代表已经探索过的节点,U集合表示未探索过的节点。时间复杂度为O(n^2)具体过程见下图和表C++代码如下: 1 #include 2 #define MAX.....
分类:
编程语言 时间:
2015-05-21 01:19:14
阅读次数:
335
LinkedList
LinkedList基于双向循环链表实现。也可以被当做堆栈,队列或双端队列进行操作。非线程安全。下面直接贴ArrayList的Java实现(只贴了部分代码),来源JDK1.8.0_25/src.zip。
/**
* ****双向链表对应的数据结构*********
* 包含:节点值item
* 前驱 pre
* ...
分类:
编程语言 时间:
2015-05-20 22:22:46
阅读次数:
189
实现顺序表的基本操作,包括顺序表的建立,查找,求长度,查找前驱,插入,删除,输出等函数
#include
#include
#include
using namespace std;
#define OK 1
#define ERROR 0
#define OVERFLOW -1
#define List_INIT_SPACE 100 //存储空间初始分配量
#define Li...
分类:
其他好文 时间:
2015-05-20 13:14:18
阅读次数:
229