日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

二叉树(BST)之创建二叉搜索树

發(fā)布時間:2025/3/19 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 二叉树(BST)之创建二叉搜索树 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

二叉樹搜索基本概念

二叉搜索樹,以這樣一種方式構成,在任何層、任何節(jié)點的直接左節(jié)點的存儲值總是小于或等于其節(jié)點本身的值。所以節(jié)點的左子樹總包含那些存儲值小于或等于它的節(jié)點。同理,節(jié)點的右子樹總包含那些存儲值大于或等于它的節(jié)點。下述代碼從根節(jié)點開始,并將當前節(jié)點的數(shù)據(jù)部分與正在插入的新數(shù)據(jù)結點進行了比較。如果新節(jié)點的數(shù)據(jù)小于當前節(jié)點的數(shù)據(jù)值,通過左子節(jié)點指針進行**遞歸調用相同函數(shù)**;否則,通過右子節(jié)點**遞歸調用相同函數(shù)**。 #include<stdio.h> #include<stdlib.h> # define N sizeof(struct point)//用宏來存結構體長度struct point {int date;struct point* left;struct point* right; };struct point* creatnode(int data) {struct point* p;p = (struct point*)malloc(N);//動態(tài)申請空間p->date = data;//存入信息,并將左右子樹為空p->left = NULL;p->right = NULL;return p; }void insertnode(struct point** root, struct point* n) // struct point** root 是指向指針的指針存的是指針變量的地址,(不懂的可以看下我之前的博客){struct point* temp = *root;if (temp == NULL){*root = n;}else{if (n->date < temp->date)insertnode(&temp->left, n);else insertnode(&temp->right, n);} }int main() {struct point* root = NULL;for (int i = 0; i < 5; i++)insertnode(&root, creatnode(i));//將數(shù)據(jù)直接轉化為結點來處理return 0; }

總結

以上是生活随笔為你收集整理的二叉树(BST)之创建二叉搜索树的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。