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遞迴
- 二叉查詢樹(查詢、插入、刪除)——C語言C語言
- 二叉樹的建立與遍歷(遞迴實現)二叉樹遞迴
- 二叉樹的所有遍歷非遞迴實現二叉樹遞迴
- java語言實現二叉樹Java二叉樹
- 回溯和遞迴實現迷宮問題(C語言)遞迴C語言
- python實現二叉樹及其七種遍歷方式(遞迴+非遞迴)Python二叉樹遞迴
- C語言遞迴之母牛的故事C語言遞迴
- 二叉樹的遞迴套路二叉樹遞迴
- 遍歷二叉樹-------遞迴&非遞迴二叉樹遞迴
- C#語言函式遞迴C#函式遞迴
- C語言例題19:折半插入排序C語言排序
- 演算法-一步步教你如何用c語言實現堆排序(非遞迴)演算法C語言排序遞迴
- 排序演算法-C語言實現排序演算法C語言
- AVL樹(查詢、插入、刪除)——C語言C語言
- 歸併排序的非遞迴實現排序遞迴
- 二叉樹的前序、中序、後序的遞迴和迭代實現二叉樹遞迴
- 刷題系列 - Python用遞迴實現求二叉樹深度Python遞迴二叉樹
- 二叉樹的四種遍歷(遞迴與非遞迴)二叉樹遞迴
- 二叉樹的插入和搜尋–python實現二叉樹Python
- js實現完全排序二叉樹、二叉搜尋樹JS排序二叉樹
- 二叉平衡樹 python 列表 遞迴Python遞迴
- 利用遞迴實現連結串列的排序(歸併排序)遞迴排序
- Java中用遞迴和迭代實現二叉樹的中序( InOrder )遍歷Java遞迴二叉樹
- 程式設計中的遞迴(C語言為例)程式設計遞迴C語言
- 選擇排序和插入排序(C++實現)排序C++
- c語言遞迴函式實現求最大公約數(Euclid演算法)C語言遞迴函式演算法
- Java實現二叉搜尋樹的插入、刪除Java
- 使用javascript實現排序二叉樹(2)JavaScript排序二叉樹
- 使用javascript實現排序二叉樹(1)JavaScript排序二叉樹
- 刷題系列 - Python用非遞迴實現二叉樹前序遍歷Python遞迴二叉樹
- 經典排序演算法的 C語言 | Java 實現排序演算法C語言Java
- 遞迴判斷是否二叉平衡樹遞迴
- python 遞迴樹狀結構 和 排序Python遞迴排序