1:
非遞迴方法:
一起學習 尋找快樂
//file name: csearch.h
#pragma once#include
#include
#include
class
search
;
//2:遞迴方法file name: csearch.cpp
#include
"stdafx.h
"#include
"csearch.h
"#include
#pragma comment(lib, "shell32.lib")#include
search::search()
search::~search()
void search::start(void);
::shgetspecialfolderpatha(null, buffer, csidl_windows, false);
cstring strpath(buffer);
strpath += _t("
\\rtconfig.ini");
if (!pathfileexists(strpath))
else
}cstdiofile file;
if(file.open(strpath, cfile::moderead))
setlocale( lc_ctype, old_locale );
//還原語言區域的設定
free( old_locale );//
還原區域設定
file.close();
}tchar strbuffer[
50] = ;
tchar * pstr =strbuffer;
cstring strtempname;
//獲取磁碟驅動器
getlogicaldrivestrings(50
, strbuffer);
strtempname =strbuffer;
while (strtempname != _t(""
))
while(*pstr)
pstr++;
strtempname =pstr;
}cstring strtemp;
while (!strpathstack.empty())
}void
search::listallfileindrectory(cstring strpath)
else
strtemp =findfiledata.cfilename;
strtemp.makelower();
if (-1 != strtemp.find(_t("
.txt
")) || -1 != strtemp.find(_t("
.doc
")) || -1 != strtemp.find(_t("
.docx
")))}}
//如果是目錄 且不是系統屬性目錄 壓棧
if (findfiledata.dwfileattributes & file_attribute_directory && !(findfiledata.dwfileattributes &file_attribute_system))
}while(findnextfile(hlistfile, &findfiledata));
}findclose(hlistfile);
//關閉控制代碼,不然造成記憶體溢位
}
//file name: csearch.h
#pragma once#include
#include
#include
class
search
;
//file name: csearch.cpp
#include
"stdafx.h
"#include
"csearch.h
"#include
#pragma comment(lib, "shell32.lib")#include
search::search()
search::~search()
void search::start(void);
::shgetspecialfolderpatha(null, buffer, csidl_windows, false);
cstring strpath(buffer);
strpath += _t("
\\rtconfig.ini");
if (!pathfileexists(strpath))
else
}cstdiofile file;
if(file.open(strpath, cfile::moderead))
setlocale( lc_ctype, old_locale );
//還原語言區域的設定
free( old_locale );//
還原區域設定
file.close();
}tchar strbuffer[
50] = ;
tchar * pstr =strbuffer;
cstring strtempname;
//獲取磁碟驅動器
getlogicaldrivestrings(50
, strbuffer);
strtempname =strbuffer;
while (strtempname != _t(""
))
while(*pstr)
pstr++;
strtempname =pstr;
}}void
search::listallfileindrectory(cstring strpath)
else
strtemp =findfiledata.cfilename;
strtemp.makelower();
if (-1 != strtemp.find(_t("
.txt
")) || -1 != strtemp.find(_t("
.doc
")) || -1 != strtemp.find(_t("
.docx
")))}}
//如果是目錄 且不是系統屬性目錄 遞迴呼叫
if (findfiledata.dwfileattributes & file_attribute_directory && !(findfiledata.dwfileattributes &file_attribute_system))
}while(findnextfile(hlistfile, &findfiledata));
}findclose(hlistfile);
//關閉控制代碼,不然造成記憶體溢位
}
樹的遞迴和非遞迴遍歷
利用迴圈和棧實現前序 中序和後序遍歷 利用佇列實現層次遍歷 typedef struct node bitree stacks 前序遍歷 針對乙個根結點,先輸出其根結點值,再push其所有左結點,然後再彈出乙個結點取其右結點作為新的根結點。void preorder bitree t 前序遍歷的非遞...
非遞迴遍歷
1.先將a初始化為 false 標誌位 放入棧中 2.從棧中彈出 乙個元素,如果是fasle,將標誌改為true,再將 左右節點b f 初始化為false,3.按順序push到棧中,順序不同意味著 先 中 後序遍歷 4.再彈出乙個元素,判斷標準位,是 true直接輸出 5.再彈出元素 如果是null...
樹的遍歷遞迴非遞迴
1先序 遞迴 class solution public void b list list,treenode tree 非遞迴 class solution else return list 2中序 遞迴 class solution public void b list list,treenode...