更新時間:2021-02-02 17:18:33 來源:動力節點 瀏覽1356次
隨機測試是根據測試說明書執行用例測試的重要補充手段,是保證測試覆蓋完整性的有效方式和過程。紅黑樹是一種特定類型的二叉樹,對紅黑樹這一數據結構準確性的測試主要考察以下操作:插入,刪除,查詢,遍歷和驗證。本文我們就通過較為直觀的例子來簡單分析一下紅黑樹隨機測試。
紅黑樹的插入和刪除操作由inset和remove實現,查詢操作在插入和刪除操作時會間接調用,由find實現,遍歷操作分為正序(由minimum和next實現)和逆序遍歷(由maximim和prev實現),驗證操作主要是驗證插入和刪除后紅黑樹的合法性,由validate實現。至于其他和紅黑樹統計特性相關的操作,比如獲取樹高、節點數和累計的旋轉次數等可以很容易實現。
我們使用隨機數產生器隨機產生一批數據插入到紅黑樹內,然后再隨機產生一批數據作為刪除操作的參數。其中每次插入和刪除時都會對樹的合法性進行驗證,并且在插入后刪除數據結束后以正序和逆序的方式輸出紅黑樹的節點以及其他統計信息。測試代碼如下:
#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旋轉次數-黑高-節點數:"<::node_type*node=tree.maximum();node;node=tree.prev(node))
????????{
????????????cout<value<<" ";
????????}
????????cout<<"\n旋轉次數-黑高-節點數:"<
經過大量的循環隨機測試,可以驗證紅黑樹數據結構的穩定性以及平衡性調整算法的正確性,下邊是測試結果的部分截圖。
綜上所述,我們在對紅黑樹數據結構有了充分地了解,尤其是掌握學習了復雜的紅黑樹的插入刪除平衡性調整算法之后,最后進行的隨機測紅黑樹的核心算法的正確性。通過對紅黑樹數據結構的詳盡剖析,能夠讓我們對數據結構在計算機學科的重要性有了更充分地認識,在本站的數據結構和算法教程中還有大量的精彩紛呈的數據結構的知識,快來學習吧!
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習