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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

非递归遍历求二叉排序树的深度

發布時間:2025/3/20 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 非递归遍历求二叉排序树的深度 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、代碼?

#include <iostream> #include <stdlib.h> #include <stdio.h> #include <queue> #define Maxsize 100 using namespace std; typedef struct BTNode{int data;struct BTNode *lchild,*rchild; }BTNode;//利用非遞歸中序遍歷求二叉排序樹的深度 int BSTDeepth(BTNode *bt) {BTNode *p;int deepth=0; //二叉樹的深度 if(bt!=NULL){int h=0; //高度 int top=-1;BTNode *stack[Maxsize];p=bt;while(p!=NULL||top!=-1){while(p!=NULL){stack[++top]=p;p=p->lchild;h++; //深度加1 }if(top!=-1) //棧不為空 {p=stack[top--]; //出棧if(p==bt) //若出棧為根節點,則將高度置為1 h=1;if(p->rchild==NULL) //為葉子結點,記錄其高度 { // cout<<"數據為:"<<p->data<<"高度為:"<<h<<endl;if(h>deepth) //若當前的記錄的高度大于已經記錄的深度,則替換 deepth=h; // cout<<"deepth:"<<deepth<<endl;h--; }p=p->rchild;}}}return deepth; }//二叉排序樹的插入算法 int BSTInsert(BTNode *&bt,int key) {if(bt==NULL){bt=(BTNode*)malloc(sizeof(BTNode));bt->lchild=bt->rchild=NULL;bt->data=key;return 1;}else if(key==bt->data)return 0; //插入失敗else if(key<bt->data)return BSTInsert(bt->lchild,key); //插入左子樹中 elsereturn BSTInsert(bt->rchild,key); //插入右子樹中 }//二叉排序樹的創建 void CreateBST(BTNode *&bt,int key[],int n) {int i;bt=NULL;for(i=0;i<n;i++)BSTInsert(bt,key[i]); }//二叉樹的層次遍歷 void LevelOrderTraverse(BTNode *bt)//層次遍歷 {queue<BTNode*> Queue;if(!bt){cout<<"空樹!"<<endl;;return;}Queue.push(bt);while(!Queue.empty()){bt=Queue.front();Queue.pop();cout<<bt->data<<" ";if(bt->lchild)Queue.push(bt->lchild);if(bt->rchild)Queue.push(bt->rchild); }cout<<endl; } int main() {BTNode *bt; int n; // int key[10]={45,24,55,12,37,53,60,28,40,70}; // int key[10]={1,2,3,4,5,6,7,8,9,10}; int key[Maxsize];cout<<"元素個數:";cin>>n;for(int i=0;i<n;i++)cin>>key[i];CreateBST(bt,key,n);cout<<"創建完畢!層次遍歷結果如下:"<<endl; LevelOrderTraverse(bt);cout<<"深度為:"<<BSTDeepth(bt)<<endl;return 0; }

二、運行結果

不同的輸入順序會生成不同的二叉排序樹,深度也不同!

?

總結

以上是生活随笔為你收集整理的非递归遍历求二叉排序树的深度的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 538精品在线视频 | 亚洲艹 | 一级特黄aaa | jizzjizz视频| 欧美在线一区二区 | 国产不卡视频 | 亚洲国产成人自拍 | 伊朗做爰xxxⅹ性视频 | 亚洲欧美激情视频 | 欧美日日夜夜 | 天天插插插 | 一区二区天堂 | 香蕉视频网站在线 | 成人在线观看免费高清 | 天天爽夜夜爽夜夜爽精品 | 久久乐国产精品 | 91丝袜在线| 一区二区三区四区精品视频 | 男生和女生一起差差差视频 | 激烈的性高湖波多野结衣 | 亚洲欧美自偷自拍 | 一级性生活大片 | 岳乳丰满一区二区三区 | 黄黄的网站 | 中文字幕亚洲不卡 | 日本中文字幕免费观看 | 日韩社区| 久久艹av | 天天干天天做天天操 | 不用播放器av | 最新日韩中文字幕 | 片集网 | 亚洲欧美国产高清va在线播放 | 亚洲视频一 | 国产91亚洲精品 | 一边摸上面一边摸下面 | 中文字幕一区二区三区人妻在线视频 | 日韩婷婷 | 国产曰肥老太婆无遮挡 | 日日摸夜夜添夜夜添高潮喷水 | 黄色成人免费网站 | 麻豆影视在线播放 | 在线色站 | 91精品导航 | 中文字幕第一页在线播放 | 亚洲精品视频一二三区 | 台湾男男gay做爽爽的视频 | 国产精品自拍偷拍视频 | 亚洲第三区 | 中文字幕第一页在线播放 | 国产调教在线 | 久久久999成人 | 免费精品国产 | 久久成年视频 | 国产xxxxx在线观看 | 国产老头和老头xxxx× | 亚洲aa | 91在线视频播放 | 在线观看免费高清视频 | 狠狠操女人 | 亚洲成人播放器 | 日日操日日操 | 在线免费观看www | a亚洲精品 | 亚洲av无码国产精品久久 | av永久在线 | 中国老头性行为xxxx | 国产又粗又黄又爽又硬的视频 | 免费亚洲婷婷 | 蜜桃av免费在线观看 | 免费视频99 | 精品久久在线观看 | 伊人福利视频 | 5个黑人躁我一个视频 | 国产成人午夜精品无码区久久 | 国产网址| 亚洲电影在线观看 | 制服.丝袜.亚洲.中文.综合 | 国产人妻精品久久久久野外 | 欧美成人精品一区二区男人看 | 午夜性片| 亚洲色图小说 | 中文字幕影片免费在线观看 | 在线观看亚洲a | 久久久久亚洲av片无码v | 在线sese | 久久国产精品精品国产色婷婷 | 丁香花免费高清完整在线播放 | 亚洲一区二区三区免费在线观看 | 一级肉体全黄裸片 | 国产99视频在线观看 | 一级特黄bbbbb免费观看 | 美女黄色免费网站 | 自拍偷拍20p | 三上悠亚在线一区二区 | 大尺度摸揉捏胸床戏视频 | 一区福利视频 | 又粗又大又硬又长又爽 | 国产91一区在线精品 |