更新時(shí)間:2021-02-02 17:18:33 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1348次
隨機(jī)測(cè)試是根據(jù)測(cè)試說(shuō)明書(shū)執(zhí)行用例測(cè)試的重要補(bǔ)充手段,是保證測(cè)試覆蓋完整性的有效方式和過(guò)程。紅黑樹(shù)是一種特定類(lèi)型的二叉樹(shù),對(duì)紅黑樹(shù)這一數(shù)據(jù)結(jié)構(gòu)準(zhǔn)確性的測(cè)試主要考察以下操作:插入,刪除,查詢(xún),遍歷和驗(yàn)證。本文我們就通過(guò)較為直觀的例子來(lái)簡(jiǎn)單分析一下紅黑樹(shù)隨機(jī)測(cè)試。
紅黑樹(shù)的插入和刪除操作由inset和remove實(shí)現(xiàn),查詢(xún)操作在插入和刪除操作時(shí)會(huì)間接調(diào)用,由find實(shí)現(xiàn),遍歷操作分為正序(由minimum和next實(shí)現(xiàn))和逆序遍歷(由maximim和prev實(shí)現(xiàn)),驗(yàn)證操作主要是驗(yàn)證插入和刪除后紅黑樹(shù)的合法性,由validate實(shí)現(xiàn)。至于其他和紅黑樹(shù)統(tǒng)計(jì)特性相關(guān)的操作,比如獲取樹(shù)高、節(jié)點(diǎn)數(shù)和累計(jì)的旋轉(zhuǎn)次數(shù)等可以很容易實(shí)現(xiàn)。
我們使用隨機(jī)數(shù)產(chǎn)生器隨機(jī)產(chǎn)生一批數(shù)據(jù)插入到紅黑樹(shù)內(nèi),然后再隨機(jī)產(chǎn)生一批數(shù)據(jù)作為刪除操作的參數(shù)。其中每次插入和刪除時(shí)都會(huì)對(duì)樹(shù)的合法性進(jìn)行驗(yàn)證,并且在插入后刪除數(shù)據(jù)結(jié)束后以正序和逆序的方式輸出紅黑樹(shù)的節(jié)點(diǎn)以及其他統(tǒng)計(jì)信息。測(cè)試代碼如下:
#include"rb_tree.h"
#include
#include
int main()
{
????srand((unsigned)GetCurrentTime());
????int times=10,len=30;
????while(times--)
????{
????????rb_tree tree;
????????for(int i=0;i::node_type*node=tree.minimum();node;node=tree.next(node))
????????{
????????????cout<value<<" ";
????????}
????????cout<<"\n旋轉(zhuǎn)次數(shù)-黑高-節(jié)點(diǎn)數(shù):"<::node_type*node=tree.maximum();node;node=tree.prev(node))
????????{
????????????cout<value<<" ";
????????}
????????cout<<"\n旋轉(zhuǎn)次數(shù)-黑高-節(jié)點(diǎn)數(shù):"<
經(jīng)過(guò)大量的循環(huán)隨機(jī)測(cè)試,可以驗(yàn)證紅黑樹(shù)數(shù)據(jù)結(jié)構(gòu)的穩(wěn)定性以及平衡性調(diào)整算法的正確性,下邊是測(cè)試結(jié)果的部分截圖。
綜上所述,我們?cè)趯?duì)紅黑樹(shù)數(shù)據(jù)結(jié)構(gòu)有了充分地了解,尤其是掌握學(xué)習(xí)了復(fù)雜的紅黑樹(shù)的插入刪除平衡性調(diào)整算法之后,最后進(jìn)行的隨機(jī)測(cè)紅黑樹(shù)的核心算法的正確性。通過(guò)對(duì)紅黑樹(shù)數(shù)據(jù)結(jié)構(gòu)的詳盡剖析,能夠讓我們對(duì)數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)學(xué)科的重要性有了更充分地認(rèn)識(shí),在本站的數(shù)據(jù)結(jié)構(gòu)和算法教程中還有大量的精彩紛呈的數(shù)據(jù)結(jié)構(gòu)的知識(shí),快來(lái)學(xué)習(xí)吧!
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743