⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 5_1_5 使用树的遍历算法来实现xcopy功能 - 《多任务下的数据结构与算法》 - 免费试读 - book_csdn_net.htm

📁 主要介绍了多任务下面的一些数据结构和算法,比如树和图的一些遍历
💻 HTM
📖 第 1 页 / 共 3 页
字号:
             loc="http://club.book.csdn.net/book/s.aspx?key="+escape(document.getElementById("txtTopKey").value);
          
          self.location=loc;
        
      } 
    }
  </SCRIPT>

<DIV id=booknavbottom2>
<DIV class=hotleft><A href="http://book.csdn.net/subject/allbook.htm" 
target=_blank>全部图书</A> <FONT color=red>推荐</FONT>:<A 
href="http://club.book.csdn.net/book/s.aspx?key=asp.net">ASP.NET</A> <A 
href="http://club.book.csdn.net/book/s.aspx?key=ajax">Ajax</A> <A 
href="http://club.book.csdn.net/book/s.aspx?key=spring">Spring</A> <A 
href="http://club.book.csdn.net/book/s.aspx?key=Hibernate">Hibernate</A> <A 
href="http://club.book.csdn.net/book/s.aspx?key=Java">Java</A></DIV>
<DIV class=hotright><SELECT id=listSearchType name=aa> <OPTION value=2 
  selected>书友会</OPTION> <OPTION value=1>连载</OPTION></SELECT><INPUT 
onkeypress=if(event.keyCode==13){SearchBook_Top();} id=txtTopKey maxLength=25><INPUT onclick=SearchBook_Top(); type=button value=搜索 name=提交></DIV></DIV></DIV>
<DIV class=area>
<SCRIPT 
src="5_1_5 使用树的遍历算法来实现Xcopy功能 - 《多任务下的数据结构与算法》 - 免费试读 - book_csdn_net.files/BookDetailAd.js" 
type=text/javascript></SCRIPT>

<DIV class=col1>
<DIV class=lineBlue></DIV><!-- title -->
<DIV class=arcTitle>
<H1><A href="http://book.csdn.net/bookfiles/65">多任务下的数据结构与算法 </A></H1>
<DIV style="FONT-SIZE: 15px; TEXT-ALIGN: center"><A 
href="http://book.csdn.net/bookfiles/65/100652557.shtml">5.1.5 
使用树的遍历算法来实现Xcopy功能 </A></DIV>
<DIV style="FONT-SIZE: 15px; TEXT-ALIGN: center"><A class=url 
href="http://book.csdn.net/">http://book.csdn.net/</A> 2006-8-14 14:19:00 </DIV>
<DIV class=clear></DIV>
<DIV 
style="BORDER-RIGHT: #0b5f98 1px solid; BORDER-TOP: #0b5f98 1px solid; MARGIN: 0px auto; BORDER-LEFT: #0b5f98 1px solid; WIDTH: 700px; BORDER-BOTTOM: #0b5f98 1px solid">
<DIV 
style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FLOAT: left; PADDING-BOTTOM: 1px; WIDTH: 16px; COLOR: white; PADDING-TOP: 1px; BACKGROUND-COLOR: #0b5f98">图书导读 
</DIV>
<DIV 
style="PADDING-LEFT: 2px; FLOAT: right; WIDTH: 670px; LINE-HEIGHT: 16pt; TEXT-ALIGN: left"><!--导读-->
<H1 id=divCurrentNode 
style="PADDING-LEFT: 2px; FONT-SIZE: 12px; WIDTH: 100%; COLOR: #b83507; TEXT-ALIGN: left">当前章节:<A 
href="http://book.csdn.net/bookfiles/65/100652557.shtml"><FONT color=red>5.1.5 
使用树的遍历算法来实现Xcopy功能</FONT></A></H1>
<DIV id=divRelateNode style="PADDING-LEFT: 2px">
<DIV style="FLOAT: left; WIDTH: 49%">·<A 
href="http://book.csdn.net/bookfiles/65/100652554.shtml">5.1.2 
树的操作接口设计</A></DIV>
<DIV style="FLOAT: right; WIDTH: 49%">·<A 
href="http://book.csdn.net/bookfiles/65/100652555.shtml">5.1.3 树的遍历算法</A></DIV>
<DIV style="FLOAT: left; WIDTH: 49%">·<A 
href="http://book.csdn.net/bookfiles/65/100652556.shtml">5.1.4 树的编码实现</A></DIV>
<DIV style="FLOAT: right; WIDTH: 49%">·<A 
href="http://book.csdn.net/bookfiles/65/100652558.shtml">6.2.1 
哈希AVL树的基本概念</A></DIV>
<DIV style="FLOAT: left; WIDTH: 49%">·<A 
href="http://book.csdn.net/bookfiles/65/100652559.shtml">6.2.2 
哈希AVL树的查找</A></DIV>
<DIV style="FLOAT: right; WIDTH: 49%">·<A 
href="http://book.csdn.net/bookfiles/65/100652560.shtml">6.2.3 
哈希AVL树的插入</A></DIV></DIV></DIV></DIV>
<DIV class=clear></DIV></DIV><!-- main -->
<DIV id=main>
<DIV id=text>
<DIV id=csdn_zhaig_ad_yahoo_2></DIV>
<H3 style="MARGIN-LEFT: 0cm; TEXT-INDENT: 0cm"><SPAN 
lang=EN-US>5.1.5</SPAN><SPAN lang=EN-US> &nbsp;</SPAN><SPAN 
style="FONT-FAMILY: 方正准圆简体">使用树的遍历算法来实现</SPAN><SPAN lang=EN-US>Xcopy</SPAN><SPAN 
style="FONT-FAMILY: 方正准圆简体">功能</SPAN></H3>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 华康简宋">在文件系统中,经常会复制某个目录下的所有文件和子目录及其包含的文件到另外一个目录中,在</SPAN><SPAN 
lang=EN-US>DOS</SPAN><SPAN 
style="FONT-FAMILY: 华康简宋">操作系统中,实现这个功能的命令名叫</SPAN><SPAN 
lang=EN-US>Xcopy</SPAN><SPAN 
style="FONT-FAMILY: 华康简宋">,下面就使用树的递归遍历算法来实现这个</SPAN><SPAN 
lang=EN-US>Xcopy</SPAN><SPAN style="FONT-FAMILY: 华康简宋">功能。</SPAN></P>
<P class=MsoNormal><SPAN style="FONT-FAMILY: 华康简宋">下面以流行的</SPAN><SPAN 
lang=EN-US>Windows</SPAN><SPAN 
style="FONT-FAMILY: 华康简宋">操作系统来实现这个功能,实现编码如下。</SPAN></P>
<P class=4 style="LINE-HEIGHT: 14.3pt"><SPAN lang=EN-US>#include 
&lt;windows.h&gt;</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt; TEXT-ALIGN: left" align=left><SPAN 
lang=EN-US style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt"></SPAN>&nbsp;</P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt; TEXT-ALIGN: left" align=left><SPAN 
lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">/**&nbsp;&nbsp;&nbsp;&nbsp; 
</SPAN><SPAN 
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; LETTER-SPACING: 0pt">将一个目录及子目录下的所有文件复制到另外一个目录下</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt; TEXT-ALIGN: left" align=left><SPAN 
lang=EN-US style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt"></SPAN>&nbsp;</P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt; TEXT-ALIGN: left" align=left><SPAN 
lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
@param&nbsp;&nbsp;&nbsp;&nbsp; char *pszSrcDir - </SPAN><SPAN 
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; LETTER-SPACING: 0pt">要拷贝的源目录</SPAN><SPAN 
lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt; TEXT-ALIGN: left" align=left><SPAN 
lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
@param&nbsp;&nbsp;&nbsp;&nbsp; char *pszTargeDir - </SPAN><SPAN 
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; LETTER-SPACING: 0pt">目标目录</SPAN><SPAN 
lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt; TEXT-ALIGN: left" align=left><SPAN 
lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
@param&nbsp;&nbsp;&nbsp;&nbsp; BOOL bOverWrite - </SPAN><SPAN 
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; LETTER-SPACING: 0pt">覆盖标志,<SPAN 
lang=EN-US>FALSE</SPAN>表示覆盖</SPAN><SPAN lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp; </SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt; TEXT-ALIGN: left" align=left><SPAN 
lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
@return&nbsp;&nbsp;&nbsp;&nbsp; void - </SPAN><SPAN 
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; LETTER-SPACING: 0pt">无</SPAN><SPAN 
lang=EN-US style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp; </SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt; TEXT-ALIGN: left" align=left><SPAN 
lang=EN-US style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">*/</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt; TEXT-ALIGN: left" align=left><SPAN 
lang=EN-US style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">void Xcopy( char 
*pszSrcDir, char *pszTargeDir, BOOL bOverWrite )</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt; TEXT-ALIGN: left" align=left><SPAN 
lang=EN-US style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">{</SPAN></P>
<P class=MsoNormal 
style="MARGIN-LEFT: 10.4pt; LINE-HEIGHT: 14pt; TEXT-ALIGN: left" 
align=left><SPAN lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp;&nbsp;&nbsp; 
char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
lBaseSearch[MAX_PATH];</SPAN></P>
<P class=MsoNormal 
style="MARGIN-LEFT: 10.4pt; LINE-HEIGHT: 14pt; TEXT-ALIGN: left" 
align=left><SPAN lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp;&nbsp;&nbsp; 
HANDLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
lhFile;</SPAN></P>
<P class=MsoNormal 
style="MARGIN-LEFT: 10.4pt; LINE-HEIGHT: 14pt; TEXT-ALIGN: left" 
align=left><SPAN lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp;&nbsp;&nbsp; 
WIN32_FIND_DATA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
lfData;</SPAN></P>
<P class=MsoNormal 
style="MARGIN-LEFT: 10.4pt; LINE-HEIGHT: 14pt; TEXT-ALIGN: left" 
align=left><SPAN lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt"></SPAN>&nbsp;</P>
<P class=MsoNormal 
style="MARGIN-LEFT: 10.4pt; LINE-HEIGHT: 14pt; TEXT-ALIGN: left" 
align=left><SPAN lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp;&nbsp;&nbsp; sprintf( 
lBaseSearch, "%s\\*.*", pszSrcDir );</SPAN></P>
<P class=MsoNormal 
style="MARGIN-LEFT: 10.4pt; LINE-HEIGHT: 14pt; TEXT-ALIGN: left" 
align=left><SPAN lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp;&nbsp;&nbsp; lhFile = 
FindFirstFile( lBaseSearch, &amp;lfData );</SPAN></P>
<P class=MsoNormal 
style="MARGIN-LEFT: 10.4pt; LINE-HEIGHT: 14pt; TEXT-ALIGN: left" 
align=left><SPAN lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp;&nbsp;&nbsp; if ( lhFile 
== INVALID_HANDLE_VALUE ) {</SPAN></P>
<P class=MsoNormal 
style="MARGIN-LEFT: 10.4pt; LINE-HEIGHT: 14pt; TEXT-ALIGN: left" 
align=left><SPAN lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
return;</SPAN></P>
<P class=MsoNormal 
style="MARGIN-LEFT: 10.4pt; LINE-HEIGHT: 14pt; TEXT-ALIGN: left" 
align=left><SPAN lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp;&nbsp;&nbsp; 
}</SPAN></P>
<P class=MsoNormal 
style="MARGIN-LEFT: 10.4pt; LINE-HEIGHT: 14pt; TEXT-ALIGN: left" 
align=left><SPAN lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp;&nbsp;&nbsp; do 
{</SPAN></P>
<P class=MsoNormal 
style="MARGIN-LEFT: 10.4pt; LINE-HEIGHT: 14pt; TEXT-ALIGN: left" 
align=left><SPAN lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
CreateDirectory( pszTargeDir, NULL );</SPAN></P>
<P class=MsoNormal 
style="MARGIN-LEFT: 10.4pt; LINE-HEIGHT: 14pt; TEXT-ALIGN: left" 
align=left><SPAN lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
if (&nbsp;&nbsp;&nbsp;&nbsp; !strcmp( lfData.cFileName, "." ) ||</SPAN></P>
<P class=MsoNormal 
style="MARGIN-LEFT: 10.4pt; LINE-HEIGHT: 14pt; TEXT-ALIGN: left" 
align=left><SPAN lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
!strcmp( lfData.cFileName, ".." )) {</SPAN></P>
<P class=MsoNormal 
style="MARGIN-LEFT: 10.4pt; LINE-HEIGHT: 14pt; TEXT-ALIGN: left" 
align=left><SPAN lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/* </SPAN><SPAN 
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; LETTER-SPACING: 0pt">跳过</SPAN><SPAN 
lang=EN-US style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt"> . and .. </SPAN><SPAN 
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; LETTER-SPACING: 0pt">不处理</SPAN><SPAN 
lang=EN-US style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt"> */</SPAN></P>
<P class=MsoNormal 
style="MARGIN-LEFT: 10.4pt; LINE-HEIGHT: 14pt; TEXT-ALIGN: left" 
align=left><SPAN lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
continue;</SPAN></P>
<P class=MsoNormal 
style="MARGIN-LEFT: 10.4pt; LINE-HEIGHT: 14pt; TEXT-ALIGN: left" 
align=left><SPAN lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
}</SPAN></P>
<P class=MsoNormal 
style="MARGIN-LEFT: 10.4pt; LINE-HEIGHT: 14pt; TEXT-ALIGN: left" 
align=left><SPAN lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
if ( lfData.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY ) {</SPAN></P>
<P class=MsoNormal 
style="MARGIN-LEFT: 10.4pt; LINE-HEIGHT: 14pt; TEXT-ALIGN: left" 
align=left><SPAN lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/* </SPAN><SPAN 
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; LETTER-SPACING: 0pt">目录</SPAN><SPAN 
lang=EN-US style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt"> */</SPAN></P>
<P class=MsoNormal 
style="MARGIN-LEFT: 10.4pt; LINE-HEIGHT: 14pt; TEXT-ALIGN: left" 
align=left><SPAN lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
char&nbsp;&nbsp; szBaseDir[MAX_PATH];</SPAN></P>
<P class=MsoNormal 
style="MARGIN-LEFT: 10.4pt; LINE-HEIGHT: 14pt; TEXT-ALIGN: left" 
align=left><SPAN lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
char&nbsp;&nbsp; szTargeDir[MAX_PATH];</SPAN></P>
<P class=MsoNormal 
style="MARGIN-LEFT: 10.4pt; LINE-HEIGHT: 14pt; TEXT-ALIGN: left" 
align=left><SPAN lang=EN-US 
style="FONT-SIZE: 9pt; LETTER-SPACING: 0pt"></SPAN>&nbsp;</P>
<P class=MsoNormal 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -