簡體   English   中英

C++二叉搜索樹刪除無序變量

[英]C++ Binary Search Tree Deletion by unordered variable

我有一個按名稱排序的二叉搜索樹,但我試圖刪除所有分數低於 50 的學生。我有困難,因為樹不是按分數排序,而是按名稱排序,但我需要按分數刪除. 我不能為上帝的生命似乎能夠合並遍歷 + 節點刪除而不會出錯,或者它顯然無法正常工作。 有人可以讓我朝着正確的方向前進嗎? 我找不到任何線程,它們被樹未排序的變量刪除,並且無法在線找到任何線程。

謝謝你。

這可能最好分兩次完成。 在第一遍中,初始化一個空的節點列表。 然后,對樹進行中序遍歷,並將對每個需要刪除的節點的引用存儲在列表中。

在第二遍中,遍歷您在第一遍中創建的列表,依次刪除每個節點。

您也可以通過創建新樹一次性完成此操作。 然后,對原始樹進行中序遍歷,將所有得分大於或等於 50 的節點復制到新樹中。 完成后,刪除舊樹。

一般來說,如果分數低於50的學生很少,第一種方法會更快。但是,如果超過一半的學生分數低於50,那么第二種方法可能會更快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM