二叉搜尋樹

2021-10-05 12:53:04 字數 834 閱讀 7635

#include

#include

typedef struct node node;

//查詢待插入點的父節點

node * findinsertloc(node *p1, float insertvalue)

else

} else

else }}

return p1;

}node * buildtree(float arr, int len)

;會引發指標亂指

//根據待插入點和待插入點父節點的值的大小,確定應該插入父節點的左子樹還是右子樹

if (father->value < arr[loc]) else

}return rootnode;

}void inorder(node *p2)

}void preorder(node *p2)

}int main(int argc, char **ar**)

;int arrlen = sizeof(arr1)/sizeof(arr1[0]);

node *root = buildtree(arr1, arrlen);

//printf("\nend --  %f", root->left->value);

inorder(root);

return 0;

}note:

1、通過node descendant = 方式建立節點,會導致指標亂指。具體原因暫不詳;

2、陣列的長度需要在陣列建立的函式中,通過sizeof(arr)/sizeof(arr[0])計算。如果傳遞arr給函式,在被呼叫函式中通過上述表示式計算,長度計算有誤。

二叉搜尋樹 二叉搜尋樹

題目 二叉搜尋樹 time limit 2000 1000 ms j a others memory limit 32768 32768 k j a others total submission s 6945 accepted submission s 3077 problem descripti...

二叉搜尋樹 修剪二叉搜尋樹

第一反應是重構,看來別人的解答發現,其實不用重構那麼複雜。treenode trimbst treenode root,int low,int high if root val high 下一層處理完左子樹的結果賦給root left,處理完右子樹的結果賦給root right。root left ...

樹 二叉樹 二叉搜尋樹

給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 節點的左子樹只包含小於當前節點的數。節點的右子樹只包含大於當前節點的數。所有左子樹和右子樹自身必須也是二叉搜尋樹。示例 1 輸入 2 13輸出 true 示例 2 輸入 5 14 3 6輸出 false 解釋 輸入為 ...