簡體   English   中英

二進制搜索樹-有序遍歷

[英]Binary Search Tree - In-order Traversal

我正在嘗試使用BST制作填字游戲,我目前在樹中插入了以下單詞:

單詞,威爾,威爾,威爾士,枯萎,蘋果,abs,古怪(按此順序插入)

但是每次我在Visual Studio中調試程序時,都會出現錯誤

Exception thrown at 0x008DE28C in AVLBSTcrosswordhunter.exe: 0xC0000005: Access violation writing location 0x0000001C.

但是,當跟蹤變量時,我遍歷的變量永遠不會設置為1,因此我不會在while循環中退出,錯誤發生在內部,我只是不確定在哪里以及為什么。

while (!traversed)
{
    if (temp != NULL)
    {
        if (temp->word.substr(0, sub_num) == value.substr(0, sub_num))
        {
            count++;
        }
        s.push(temp);
        temp = temp->left;
    }
    else
    {
        if (!s.empty())
        {
            temp = s.top();
            s.pop();
            temp = temp->right;
        }
        if (s.empty())
        {
            traversed = 1;
        }
    }
}

為了清楚起見,我要搜索的單詞是“ w ***”(“ *”是通配符),因此if語句檢查指針temp是否具有子字符串w,如果聲音則增加計數,所以我可以傳回與該通配符搜索匹配的數字。

另外,在while循環之前,將temp設置為根(字)。

感謝您提供的任何幫助!

看來我匆忙完成此操作時創建了兩個遍歷變量和兩個堆棧變量,現在看來可以正常工作!

暫無
暫無

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

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