單鏈表逆序輸出
摘要: 剛剛有人考了我一道題,逆序輸出單鏈表:
我是這樣答的(下面的代碼為偽代碼,不能通過編譯):
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());
}
后來他讓我想一想還有沒有更為簡(jiǎn)單的方法了,當(dāng)時(shí)我用了幾分鐘到網(wǎng)上找了一下,沒有找到更好的辦法,如果先把鏈表逆序,再順序輸出就更差了,時(shí)間復(fù)雜度更高。
我走出大樓以后,忽然想到,是遞歸呀,對(duì)是遞歸:
void printSList(slist *
閱讀全文
VC中取得毫秒級(jí)的時(shí)間
摘要: 1000毫秒為一秒,毫秒可能是能夠取到的最小的時(shí)間單位了,代碼如下:
1 DWORD startTime = GetTickCount();
2 // do something
3 DWORD totalTime = GetTickCount() - startTime;
看到樓下兩們?nèi)市值陌l(fā)言,我找了一下資料,如下的代碼可以取得更為精確的時(shí)間值:
1 // 取得時(shí)鐘頻率
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
閱讀全文