📄 5_1_4 树的编码实现 - 《多任务下的数据结构与算法》 - 免费试读 - book_csdn_net.htm
字号:
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">;</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">返回</SPAN><SPAN lang=EN-US
style="FONT-SIZE: 9pt">CAPI_SUCCESS</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">表示成功</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 13.9pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt">*/</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 13.9pt"><STRONG><SPAN lang=EN-US
style="FONT-SIZE: 9pt">INT Tree_RemoveLeaf( TREE *pTree, void *pLeafData,
</SPAN></STRONG></P>
<P class=MsoNormal style="LINE-HEIGHT: 13.9pt"><STRONG><SPAN lang=EN-US
style="FONT-SIZE: 9pt">
DESTROYFUNC LeafDestroyFunc)</SPAN></STRONG></P>
<P class=MsoNormal style="LINE-HEIGHT: 13.9pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt">{</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 13.9pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> if ( pTree ==
NULL )</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 13.9pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> {</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 13.9pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt">
return CAPI_FAILED</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">;</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 13.9pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> }</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 13.9pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> return
DoubleList_Remove(pTree->pLeafList, pLeafData, LeafDestroyFunc)</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">;</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 13.9pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt">}</SPAN></P>
<P class=4 style="LINE-HEIGHT: 13.9pt"><SPAN lang=EN-US>/**
</SPAN><SPAN style="FONT-FAMILY: 华康简宋">树的设置属性函数</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 13.9pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> @param
TREE *pTree</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋; LETTER-SPACING: -0.2pt">—</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋; LETTER-SPACING: -0.1pt">—</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">树指针</SPAN><SPAN lang=EN-US
style="FONT-SIZE: 9pt">
</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 13.9pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> @param void
*pProperties</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋; LETTER-SPACING: -0.2pt">—</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋; LETTER-SPACING: -0.1pt">—</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">属性指针</SPAN><SPAN lang=EN-US
style="FONT-SIZE: 9pt">
</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 13.9pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> @param
DESTROYFUNC PropDestroyFunc</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋; LETTER-SPACING: -0.2pt">—</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋; LETTER-SPACING: -0.1pt">—</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">属性释放函数</SPAN><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> </SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 13.9pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> @return
INT</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋; LETTER-SPACING: -0.2pt">—</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋; LETTER-SPACING: -0.1pt">—</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">返回</SPAN><SPAN lang=EN-US
style="FONT-SIZE: 9pt">CAPI_FAILE</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">表示失败</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">;</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">返回</SPAN><SPAN lang=EN-US
style="FONT-SIZE: 9pt">CAPI_SUCCESS</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">表示成功</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 13.9pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt">*/</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 13.9pt"><STRONG><SPAN lang=EN-US
style="FONT-SIZE: 9pt">INT Tree_SetProperties( TREE *pTree, void
*pProperties,</SPAN></STRONG></P>
<P class=MsoNormal style="LINE-HEIGHT: 13.9pt"><STRONG><SPAN lang=EN-US
style="FONT-SIZE: 9pt">
DESTROYFUNC PropDestroyFunc)</SPAN></STRONG></P>
<P class=MsoNormal style="LINE-HEIGHT: 13.9pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt">{</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 13.9pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> if ( pTree ==
NULL )</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 13.9pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> {</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 13.9pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt">
return CAPI_FAILED</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">;</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 13.9pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> }</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 13.9pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> /*
</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">如果原来已经设置了属性则需要将其释放以防止内存泄漏</SPAN><SPAN
lang=EN-US style="FONT-SIZE: 9pt"> */</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 13.9pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> if (
pTree->pProperties != NULL )</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 13.9pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> {</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt">
PropDestroyFunc( pTree->pProperties )</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">;</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> }</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt">
pTree->pProperties = pProperties</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">;</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> return
CAPI_SUCCESS</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">;</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt">}</SPAN></P>
<P class=4><SPAN lang=EN-US>/** </SPAN><SPAN
style="FONT-FAMILY: 华康简宋">树的获取属性函数</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> @param
TREE *pTree</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋; LETTER-SPACING: -0.2pt">—</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋; LETTER-SPACING: -0.1pt">—</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">树指针</SPAN><SPAN lang=EN-US
style="FONT-SIZE: 9pt">
</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> @return
void *</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋; LETTER-SPACING: -0.2pt">—</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋; LETTER-SPACING: -0.1pt">—</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">成功返回属性指针</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">;</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">返回</SPAN><SPAN lang=EN-US
style="FONT-SIZE: 9pt">NULL</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">表示失败或属性为</SPAN><SPAN lang=EN-US
style="FONT-SIZE: 9pt">NULL
</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt">*/</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><STRONG><SPAN lang=EN-US
style="FONT-SIZE: 9pt">void *Tree_GetProperties(TREE *pTree)</SPAN></STRONG></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt">{</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> if ( pTree ==
NULL )</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> {</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt">
return NULL</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">;</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> }</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> return
pTree->pProperties</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">;</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt">}</SPAN></P>
<P class=4><SPAN lang=EN-US>/** </SPAN><SPAN
style="FONT-FAMILY: 华康简宋">树的增加子树函数</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> @param
TREE *pTree</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋; LETTER-SPACING: -0.2pt">—</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋; LETTER-SPACING: -0.1pt">—</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">树指针</SPAN><SPAN lang=EN-US
style="FONT-SIZE: 9pt">
</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> @param
TREE *pSubTree</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋; LETTER-SPACING: -0.2pt">—</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋; LETTER-SPACING: -0.1pt">—</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">子树指针</SPAN><SPAN lang=EN-US
style="FONT-SIZE: 9pt">
</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> @return
INT</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋; LETTER-SPACING: -0.2pt">—</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋; LETTER-SPACING: -0.1pt">—</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">返回</SPAN><SPAN lang=EN-US
style="FONT-SIZE: 9pt">CAPI_FAILE</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">表示失败</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">;</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">返回</SPAN><SPAN lang=EN-US
style="FONT-SIZE: 9pt">CAPI_SUCCESS</SPAN><SPAN
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">表示成功</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt">*/</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><STRONG><SPAN lang=EN-US
style="FONT-SIZE: 9pt">INT Tree_AddSubTree(TREE *pTree, TREE
*pSubTree)</SPAN></STRONG></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt">{</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> if ( pTree ==
NULL || pSubTree == NULL )</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt"> {</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US
style="FONT-SIZE: 9pt">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -