C語言 遞迴實現二叉排序樹的插入
前言
二叉排序樹,是用於方便查詢的一種樹。
特徵為,左子樹的值小於根節點的值,右子樹的值大於根節點的值。
插入思路
- 當樹為空時,新建節點,並讓其成為根節點。
- 如果值相同,那麼代表插入失敗。
- 如果值大於當前結點,應該插入到右子樹。
- 如果值小於當前結點,應該插入到左子樹。
- 整體是一個遞迴的思想。
二叉排序法
int insertNodeBinarySortedTree(BinarySortedTree T,int value)
{
// 空樹則當根節點
if(T==NULL)
{
T =(TreeNode*)malloc(sizeof(TreeNode));
T->data=value;
T->lchild = NULL;
T->rchild = NULL;
return 1;
}else if(value==T->data)
{
return 0;//已經存在該結點,插入失敗
}
else if(value<T->data)
{
return insertNodeBinarySortedTree(T->lchild,value);
}
else
{
return insertNodeBinarySortedTree(T->rchild,value);
}
}
相關文章
- 平衡二叉樹(AVL樹)和 二叉排序樹轉化為平衡二叉樹 及C語言實現二叉樹排序C語言
- c語言_遞迴C語言遞迴
- 【C++】翻轉二叉樹(遞迴、非遞迴)C++二叉樹遞迴
- 遍歷二叉樹的遞迴與非遞迴程式碼實現二叉樹遞迴
- 什麼是遍歷二叉樹,JavaScript實現二叉樹的遍歷(遞迴,非遞迴)二叉樹JavaScript遞迴
- [java] 二叉樹的後序遍歷(遞迴與非遞迴實現)Java二叉樹遞迴
- 二叉樹的建立與遍歷(遞迴實現)二叉樹遞迴
- 二叉樹的所有遍歷非遞迴實現二叉樹遞迴
- 二叉樹的非遞迴遍歷——java實現二叉樹遞迴Java
- 二叉查詢樹(查詢、插入、刪除)——C語言C語言
- java語言實現二叉樹Java二叉樹
- 二叉樹 C語言二叉樹C語言
- 發現C語言遞迴深度有限制C語言遞迴
- 回溯和遞迴實現迷宮問題(C語言)遞迴C語言
- 二叉樹的遞迴套路二叉樹遞迴
- 二叉排序樹的實現排序
- 遍歷二叉樹-------遞迴&非遞迴二叉樹遞迴
- python實現二叉樹及其七種遍歷方式(遞迴+非遞迴)Python二叉樹遞迴
- c語言的二叉樹的建立C語言二叉樹
- 【資料結構】——搜尋二叉樹的插入,查詢和刪除(遞迴&非遞迴)資料結構二叉樹遞迴
- C語言遞迴之母牛的故事C語言遞迴
- C#語言函式遞迴C#函式遞迴
- 二叉樹遞迴練習二叉樹遞迴
- 二叉樹的前序、中序、後序的遞迴和迭代實現二叉樹遞迴
- 演算法-一步步教你如何用c語言實現堆排序(非遞迴)演算法C語言排序遞迴
- 二叉樹的四種遍歷(遞迴與非遞迴)二叉樹遞迴
- 歸併排序的非遞迴實現排序遞迴
- C語言例題19:折半插入排序C語言排序
- 排序演算法-C語言實現排序演算法C語言
- 樹(2)--二叉樹的遍歷(非遞迴)+線索二叉樹二叉樹遞迴
- AVL樹(查詢、插入、刪除)——C語言C語言
- 二叉排序樹查詢,插入,刪除排序
- 二叉樹非遞迴遍歷二叉樹遞迴
- 刷題系列 - Python用遞迴實現求二叉樹深度Python遞迴二叉樹
- js實現完全排序二叉樹、二叉搜尋樹JS排序二叉樹
- Java中用遞迴和迭代實現二叉樹的中序( InOrder )遍歷Java遞迴二叉樹
- 【資料結構】二叉樹遍歷(遞迴+非遞迴)資料結構二叉樹遞迴
- 演算法導論學習之三:排序之C語言實現:選擇排序,插入排序,歸併排序演算法排序C語言