-
大小: 11KB文件類型: .zip金幣: 2下載: 0 次發(fā)布日期: 2021-05-09
- 語言: 其他
- 標(biāo)簽: bst實(shí)現(xiàn)??
資源簡(jiǎn)介
鄧俊輝老師版本的數(shù)據(jù)結(jié)構(gòu)與算法課程中的bst實(shí)現(xiàn)源代碼

代碼片段和文件信息
/******************************************************************************************
?*?Data?Structures?in?C++
?*?ISBN:?7-302-33064-6?&?7-302-33065-3?&?7-302-29652-2?&?7-302-26883-3
?*?Junhui?DENG?deng@tsinghua.edu.cn
?*?Computer?Science?&?Technology?Tsinghua?University
?*?Copyright?(c)?2006-2013.?All?rights?reserved.
?******************************************************************************************/
/******************************************************************************************
?*?Test?of?Binary?Search?Tree
?******************************************************************************************/
#include?“BST_test.h“
/******************************************************************************************
?*?Test?a?BST
?******************************************************************************************/
template??void??testBST?(?int?n?)?{
???BST?bst;
???while?(?bst.size()????bst.stretchToLPath();?print?(?bst?);?//伸直成撇
???while?(?!bst.empty()?)?bst.remove?(?bst.root()->data?);?//清空
???while?(?bst.size()????bst.stretchToRPath();?print?(?bst?);?//伸直成捺
???while?(?!bst.empty()?)?bst.remove?(?bst.root()->data?);?//清空
???while?(?bst.size()???????T?e?=?dice?(?(?T?)?n?*?3?);?//[0?3n)范圍內(nèi)的e
??????switch?(?dice?(?3?)?)?{
?????????case?0:?{?//查找,成功率?<=?33.3%
????????????printf?(?“Searching?for?“?);?print?(?e?);?printf?(?“?...?“?);
????????????BinNodePosi(T)?&?p?=?bst.search?(?e?);
????????????p??
????????????printf?(?“Found?with“?)?print?(?p->data?)?printf?(?“\n“?)?:
????????????printf?(?“not?found\n“?);
????????????break;
?????????}
?????????case?1:?{?//刪除,成功率?<=?33.3%
????????????printf?(?“Removing?“?);?print?(?e?);?printf?(?“?...?“?);
????????????bst.remove?(?e?)??
????????????printf?(?“Done\n“?)?print?(?bst?)?:
????????????printf?(?“not?exists\n“?);
????????????break;
?????????}
?????????default:?{//插入,成功率?==?100%
????????????printf?(?“Inserting?“?);?print?(?e?);?printf?(?“?...?“?);
????????????printf?(?“Done?with“?)?print?(?bst.insert?(?e?)->data?)?printf?(?“\n“?)?print?(?bst?);
????????????break;
?????????}
??????}
???}
???while?(?bst.size()?>?0?)?{?//清空
??????T?e?=?dice?(?(?T?)?n?*?3?);?//[0?3n)范圍內(nèi)的e
??????printf?(?“Removing?“?);?print?(?e?);?printf?(?“?...?“?);
??????bst.remove?(?e?)???printf?(?“Done\n“?)?print?(?bst?)?:?printf?(?“not?exists\n“?);
???}
}
/******************************************************************************************
?*?測(cè)試主入口
?******************************************************************************************/
int?main?(?int?argc?char*?argv[]?)?{
???if?(?2?>?argc?)?{?printf?(?“Usage:?%s?\a\a\n“?argv[0]?);?return?1;?}
???srand?(?(?unsigned?int?)?time?(?NULL?)?);
???testBST?(?atoi?(?argv[1]?)?);?//元素類型可以在這里任意選擇
???retur
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????1208??2015-01-01?01:01??bst.h
?????文件????????4925??2015-01-01?01:01??bst.vcproj
?????文件????????1411??2015-01-01?01:01??BST.vcproj.user
?????文件????????1397??2015-01-01?01:01??bst_connect34.h
?????文件????????1097??2015-01-01?01:01??bst_implementation.h
?????文件?????????883??2015-01-01?01:01??bst_insert.h
?????文件?????????782??2015-01-01?01:01??bst_remove.h
?????文件????????1853??2015-01-01?01:01??bst_removeat.h
?????文件????????1871??2015-01-01?01:01??bst_rotateat.h
?????文件?????????635??2015-01-01?01:01??bst_search.h
?????文件????????1105??2015-01-01?01:01??bst_searchin_iterative.h
?????文件?????????934??2015-01-01?01:01??bst_searchin_recursive.h
?????文件?????????572??2015-01-01?01:01??bst_test.h
?????文件????????3083??2015-01-01?01:01??main.cpp
評(píng)論
共有 條評(píng)論