最短路径的O(ElgV)的解法。
使用邻接表存储图,使用堆操作选取下一个最小路径点。
本题的难度并不在最短路径本身这个算法,而是在于堆的操作:
1 使用双重指针操作堆的节点,可以省去直接复制操作堆节点,提高效率,并且这才是有效操作动态地址数据的方法,不用双重指针,我思考了下,觉得更加不好做。
2 使用一个数组记录当前顶点在堆中的位置,相当于一个hash表了,可以需要的时候,直接从表中查找表...
分类:
其他好文 时间:
2014-06-07 02:03:17
阅读次数:
214
C++标准语法中我们可以通过 * 来定义指针 &来指定引用,不过我们似乎没有直接的方法可以用一个指针定义一个指针所指类型的引用或原始类型,本文所述方法即用来解决此问题...
分类:
编程语言 时间:
2014-06-07 01:12:47
阅读次数:
339
一:strtok
C/C++:char *strtok(char s[], const char *delim);
s 代表需要分割的字符串,delim代表分割的标志,参数都为比选!返回指向分割部分的指针,如果没有分割成功就返回NULL.
一个简单的例子:...
分类:
其他好文 时间:
2014-06-05 10:01:51
阅读次数:
139
用于大型程序的工具--异常处理[续3]九、auto_ptr类[接上]5、auto_ptr对象的复制和赋值是破坏性操作 auto_ptr和内置指针对待复制和赋值有非常关键的区别。当复制auto_ptr对象或者将它的值赋给其他auto_ptr对象的时候,将基础对象的所有权从原来的auto_ptr对象转给副本,原来的auto_ptr对象重置为未绑定状态。 auto_ptr strPtr1(new ...
分类:
编程语言 时间:
2014-06-05 08:34:36
阅读次数:
366
一个变量有一个地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,他们都有相应的地址,所谓数组的指针是指数组的其实地址,数组元素的指针是数组元素的地址。一个数组是有连续的一块内存单元组成的。数组名就是这块连续内存单元的首地址。一个数组也是由各个数组元素(下标变量)组成的。每个数组预元素按...
分类:
其他好文 时间:
2014-05-31 17:11:15
阅读次数:
153
Delphi(procedure&procedure .... of object
)函数指针与方法指针 .delphiobjectbuttonintegerdelphi中经常见到以下两种定义Type TMouseProc =
procedure (X,Y:integer); TMouseEvent...
分类:
其他好文 时间:
2014-05-31 15:46:53
阅读次数:
199
一棵普通树,树中的结点没有指向父节点的指针,求一棵普通树的两个结点的最低公共祖先。代码如下,我太懒没有加注释,大家自己看吧! 1 #include 2
#include 3 #include 4 using namespace std; 5 6 struct TreeNode /...
分类:
其他好文 时间:
2014-05-31 08:08:32
阅读次数:
262
题目:输入一个整数s,打印出全部和为s的连续整数序列(至少含有2个数)。比如输入9,则输出2、3、4和4、5两个序列方案一:因为序列至少要2个数,则两个数上限值为(1+s)/2,我们能够枚举该序列的起点和终点求全部满足的序列。时间复杂度为O(n^2),效率比較低方案二:我们设置两个指针start和e...
分类:
其他好文 时间:
2014-05-31 04:07:27
阅读次数:
282
*含义1.乘法 3*5 2.定义指针变量 int *
p;//定义了一个名字叫p的变量,能够存放int数据类型的地址3.指针运算符, //如果p是一个已经定义好的指针变量则*p表示以p的内容为地址的变量
打印数据类型%d - int%ld – long int%c - char%f ...
分类:
移动开发 时间:
2014-05-31 01:04:05
阅读次数:
346
C语言规定:如果指针变量P已指向数组中的一个元素,则P+1指向同一数组中的下一个元素。引入指针变量后,就可以用俩种方法来访问数组元素了。如果p的初值为&a[0],则:P+i和a+i就是a[i]的地址,或者说它们指向a数组的第i个元素。*(p+i)或*(a+i)就是p+i或a+i所指向的数组元素,即a...
分类:
其他好文 时间:
2014-05-30 23:52:55
阅读次数:
492