单链表逆序输出
摘要: 刚刚有人考了我一道题,逆序输出单链表:
我是这样答的(下面的代码为伪代码,不能通过编译):
void printSList(slist *pList)
{
assert(pList);
if (pList == NULL)
return;
string str;
while (pList)
{
str = string(*pList) + str;
pList = pList->next;
}
printf("%s", str.c_str());
}
后来他让我想一想还有没有更为简单的方法了,当时我用了几分钟到网上找了一下,没有找到更好的办法,如果先把链表逆序,再顺序输出就更差了,时间复杂度更高。
我走出大楼以后,忽然想到,是递归呀,对是递归:
void printSList(slist *
阅读全文
posted @
2008-02-29 11:43 胡满超 阅读(10339) |
评论 (19) 编辑
VC中取得毫秒级的时间
摘要: 1000毫秒为一秒,毫秒可能是能够取到的最小的时间单位了,代码如下:
1 DWORD startTime = GetTickCount();
2 // do something
3 DWORD totalTime = GetTickCount() - startTime;
看到楼下两们仁兄的发言,我找了一下资料,如下的代码可以取得更为精确的时间值:
1 // 取得时钟频率
2 LARGE_INTEGER litmp ;
3 QueryPerformanceFrequency(&litmp);
4
5 LARGE_INTEGER start;
6 QueryPerformanceCounter(&start) ;
7
8 //do something
9
10 LARGE_INTEGER end;
11 QueryPerformanceCounter(&end) ;
12
阅读全文
posted @
2008-02-27 10:42 胡满超 阅读(9800) |
评论 (4) 编辑