層序遍歷樹的節點,佇列實現
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
typedef struct node{//樹節點定義
int data;
struct node *lchild,*rchild;
}treenode;
typedef struct{
treenode que[100];
int front,rear;
}myque;//佇列用來裝樹的節點函式
void init(myque &m){//初始化佇列函式
m.front=m.rear=0;
}
void enterqu(myque &m,treenode n){//入隊
m.que[m.rear]=n;
m.rear=(m.rear+1)%100;
}
void dequ(myque &m){//出隊
m.front=(m.front+1)%100;
}
treenode get(myque m){//得到佇列首元素
return m.que[m.front];
}
void f(myque m,treenode root){//層序遍歷樹的函式
treenode p;
enterqu(m,root);
while(m.front!=m.rear){
p=get(m);
dequ(m);
cout<<p.data<<" ";
if(p.lchild!=NULL) enterqu(m,*p.lchild);
if(p.rchild!=NULL) enterqu(m,*p.rchild);
}
}
int main()
{
myque m;
treenode *root,*a,*b,*c;
root=new treenode;
root->lchild=NULL;
root->rchild=NULL;
a=new treenode;
a->lchild=NULL;
a->rchild=NULL;
b=new treenode;
b->lchild=NULL;
b->rchild=NULL;
c=new treenode;
c->lchild=NULL;
c->rchild=NULL;
root->data=1;
a->data=2;
b->data=3;
c->data=4;
root->lchild=a;
root->rchild=b;
a->lchild=c;
init(m);
f(m,*root);
return 0;
}
相關文章
- 建立二叉樹:層次遍歷--樹的寬度高度,後序遍歷--祖先節點二叉樹
- 二叉樹的層序遍歷二叉樹
- 層序遍歷二叉樹二叉樹
- 遞迴和迭代實現二叉樹先序、中序、後序和層序遍歷遞迴二叉樹
- leetcode----給定一個二叉樹,返回該二叉樹由底層到頂層的層序遍歷,(從左向右,從葉子節點到根節點,一層一層的遍歷)LeetCode二叉樹
- 二叉樹的建立、前序遍歷、中序遍歷、後序遍歷二叉樹
- 二叉樹的四種遍歷方法:先序,中序,後序,層序二叉樹
- 刷題系列 - 中序和後序遍歷佇列,構造對應二叉樹;佇列二叉樹
- 二叉樹建立,前序遍歷,中序遍歷,後序遍歷 思路二叉樹
- 非遞迴實現先序遍歷和中序遍歷遞迴
- MySQL 實現樹形的遍歷MySql
- 演算法 -- 實現二叉樹先序,中序和後序遍歷演算法二叉樹
- 144. 二叉樹的遍歷「前序、中序、後序」 Golang實現二叉樹Golang
- jquery遍歷節點jQuery
- 力扣#94 樹的中序遍歷力扣
- 【C++】返回每一層二叉樹的平均值(層序遍歷)C++二叉樹
- java實現二叉樹的Node節點定義手撕8種遍歷(一遍過)Java二叉樹
- python-二叉樹:前、中、後、層序遍歷Python二叉樹
- 二叉樹的遍歷實現二叉樹
- 非遞迴遍歷二叉樹的四種策略-先序、中序、後序和層序遞迴二叉樹
- 二叉樹--後序遍歷二叉樹
- jQuery DOM節點的遍歷jQuery
- 二叉樹的按層遍歷二叉樹
- 資料結構與演算法——二叉樹的前序遍歷,中序遍歷,後序遍歷資料結構演算法二叉樹
- LeetCode102.二叉樹的層序遍歷LeetCode二叉樹
- 【Codeforces Round 362 (Div 2)D】【樹的遍歷 概率均分思想】Puzzles 兄弟節點的等概率遍歷下 樹的遍歷每點期望時間戳時間戳
- 144.二叉樹的前序遍歷145.二叉樹的後序遍歷 94.二叉樹的中序遍歷二叉樹
- 二叉樹:構造二叉樹(通過前序和中序遍歷)、映象翻轉、層次遍歷二叉樹
- 刷題系列 - 給出前序和後序遍歷佇列,構造對應二叉樹佇列二叉樹
- [資料結構] BFS演算法實現層序遍歷輸出一顆二叉樹資料結構演算法二叉樹
- 刷題筆記:樹的前序、中序、後序遍歷筆記
- LintCode 前序遍歷和中序遍歷樹構造二叉樹二叉樹
- LeetCode-107-二叉樹的層序遍歷 IILeetCode二叉樹
- Java中用遞迴和迭代實現二叉樹的中序( InOrder )遍歷Java遞迴二叉樹
- [java] 二叉樹的後序遍歷(遞迴與非遞迴實現)Java二叉樹遞迴
- 刷題系列 - Python實現二叉樹按層級遍歷Python二叉樹
- 二叉樹的先,中,後序遍歷二叉樹
- 二叉樹的先中後序遍歷二叉樹