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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

广度优先遍历二叉树(BFS)-C++实现

發布時間:2025/3/13 c/c++ 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 广度优先遍历二叉树(BFS)-C++实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 // 廣度優先遍歷二叉樹(BFS).cpp: 定義控制臺應用程序的入口點。2 //3 4 #include "stdafx.h"5 6 7 #include <iostream>8 #include <stdio.h>9 #include <malloc.h>10 #include <stdlib.h>11 12 using namespace std;13 14 #define QUEUE_INIT_SIZE 10015 typedef char ElemType;16 17 typedef struct BiNode18 {19 ElemType data;20 struct BiNode *lchild, *rchild;21 }BiNode, *BiPtr;22 23 typedef struct queue24 {25 int queuesize; //數組的大小26 int head, tail; //隊列的頭和尾下標27 BiPtr *q; //數組頭指針28 }Queue, *QueuePtr;29 30 int InitQueue(QueuePtr &Q)31 {32 Q->queuesize = QUEUE_INIT_SIZE;33 Q->q = (BiPtr *)malloc(sizeof(BiPtr) * Q->queuesize); //分配內存34 Q->tail = 0;//數組下標從0開始,tail始終指向隊尾元素的下一個位置35 Q->head = 0;//隊列非空時,head始終指向隊列首元素36 return 0;37 }38 39 int EnQueue(QueuePtr Q, BiPtr key)40 {41 if((Q->tail + 1) % Q->queuesize == Q->head)//取余保證,當quil=queuesize-1時,再轉回0,此時隊列沒有空間 42 {43 cout << "隊列已滿,無法再添加元素!";44 }45 else46 {47 Q->q[Q->tail] = key;48 Q->tail = (Q->tail + 1) % Q->queuesize;49 }50 return 0;51 }52 53 BiPtr DeQueue(QueuePtr Q)54 {55 BiPtr temp;56 if (Q->tail == Q->head) //判斷隊列不為空57 {58 cout << "隊列為空,無法刪除元素!";59 }60 else61 {62 temp = Q->q[Q->head];63 Q->head = (Q->head + 1) % Q->queuesize;64 }65 return temp;66 }67 68 int IsQueueEmpty(QueuePtr Q)69 {70 if (Q->head == Q->tail)//空71 return 1;72 else//非空73 return 0;74 }75 76 int IsQueueFull(QueuePtr Q)77 {78 if ((Q->tail + 1) % Q->queuesize == Q->head)79 return 1;80 else81 return 0;82 }83 84 //---------------------------------------------------85 86 int Create_BiTree(BiPtr& T)87 {88 ElemType c;89 //cout << "請輸入當前節點元素值:" << endl;90 cin >> c;91 if (c == '#') T = NULL;92 else93 {94 T = new BiNode;95 T->data = c;96 Create_BiTree(T->lchild);97 Create_BiTree(T->rchild);98 }99 return 0; 100 } 101 102 //層序遍歷 103 int LevelOrderTraverse(BiPtr T) 104 { 105 QueuePtr Q = new Queue; 106 BiPtr p = NULL; 107 InitQueue(Q); 108 109 EnQueue(Q, T);//根結點入隊 110 while (!IsQueueEmpty(Q)) 111 { 112 p = DeQueue(Q); 113 cout << p->data << " "; 114 if (p->lchild)//如果p有左孩子,則左孩子入隊 115 EnQueue(Q, p->lchild); 116 if (p->rchild)//如果p有右孩子,則左孩子入隊 117 EnQueue(Q, p->rchild); 118 } 119 return 0; 120 } 121 122 int main() 123 { 124 freopen("input2.txt", "r", stdin);//從input.txt中讀取輸入數據 125 BiPtr T; 126 Create_BiTree(T); 127 LevelOrderTraverse(T); 128 fclose(stdin); 129 return 0; 130 }

?

總結

以上是生活随笔為你收集整理的广度优先遍历二叉树(BFS)-C++实现的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 亚洲第一国产 | 草草影院在线观看 | av在线入口 | jizz成人 | 理论片午午伦夜理片影院99 | 色姑娘久| 成人久久 | 双性受孕h堵精大肚生子 | 自拍毛片 | 亚洲一区二区三区无码久久 | 亚洲一区不卡在线 | 91香蕉视频在线观看免费 | 欧美中文在线观看 | 中文字幕精品一二三四五六七八 | 可以看av的网址 | 久久精品二区 | 极品人妻一区二区三区 | 国产在线观看xxx | 天天操天天爽天天干 | sm国产在线调教视频 | 国产精品久久久久91 | 国产7777777| 亚洲成人一二三区 | 亚洲在线综合 | 日韩在线视频免费播放 | 日韩大胆视频 | 香港三级日本三级韩国三级 | 幸福,触手可及 | 88av在线| 久久久久久欧美 | 韩国三色电费2024免费吗怎么看 | 97人人爽| 91av在| 日韩亚洲国产欧美 | 久久r| 国产三级理论 | 精品成人无码一区二区三区 | 欧美日日骚 | aa片在线观看视频在线播放 | 动漫美女被艹 | 久久久九九九热 | 国产片淫乱18一级毛片动态图 | 草草影院ccyycom | 色黄网站在线观看 | 91九色在线| 久久免费视频99 | 国产精品五区 | 91污片| 国产视频久久久 | 香蕉视频免费在线 | 亚洲一区色 | 人人爽人人爽人人 | 97超碰超碰 | 男人的天堂手机在线 | 鬼眼 电影 | 91视频看看 | 午夜秋霞 | 有码av在线 | 国产精品久久久久久妇女6080 | av在线不卡免费 | av永久免费在线观看 | 99久久国产热无码精品免费 | 日韩成人不卡 | 999国产在线 | 国产青青在线 | 国产主播福利 | 激情午夜婷婷 | 黄色av小说在线观看 | 最新国产精品 | 麻豆tv在线 | 国产绿帽刺激高潮对白 | 久久久久久久久久久久久国产 | 五月天色视频 | 精品久久精品久久 | 日韩偷拍一区 | 欧美区在线 | 男人天堂视频在线观看 | 91拔萝卜视频 | 久久精品国产精品 | 国产日韩不卡 | 日韩一区二区三区在线免费观看 | 日韩中文av在线 | 国产成人手机视频 | 丁香五香天堂网 | 婷婷成人在线 | 一区二区啪啪啪 | 麻豆社| 黄色免费成人 | 日韩干| 精品亚洲一区二区三区四区五区 | 欧美在线激情视频 | 在线能看的av | 91久久精品夜夜躁日日躁欧美 | 精品在线视频免费观看 | 1024国产在线| 在线观看中文字幕一区二区 | 伊人超碰 | 最新中文字幕在线 | 欧美性受xxxx黑人 |