單鏈表逆序輸出
摘要: 剛剛有人考了我一道題,逆序輸出單鏈表:
我是這樣答的(下面的代碼為偽代碼,不能通過編譯):
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 胡滿超 閱讀(10377) |
評論 (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 胡滿超 閱讀(9843) |
評論 (4) 編輯