数据结构 · 二叉树遍历
生活随笔
收集整理的這篇文章主要介紹了
数据结构 · 二叉树遍历
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一:創建二叉樹結構
1 struct tree{ 2 char c; 3 tree left; 4 tree right; 5 };二:基于BFS的遞歸遍歷:
1、先序遍歷
1 void preorder(tree t){ 2 if(!t) 3 return; 4 visit(t); 5 preorder(t->left); 6 preorder(t->right); 7 }2、中序遍歷
1 void inorder(tree t){ 2 if(!t) 3 return; 4 lastorder(t->left); 5 visit(t); 6 lastorder(t->right); 7 }3、后序遍歷
1 void lastorder(tree t){ 2 if(!t) 3 return; 4 inorder(t->left); 5 inorder(t->right); 6 visit(t); 7 }?
三:基于BFS的層序遍歷
層序遍歷用隊列實現,從根節點開始,首先將根節點入隊,然后執行循環:結點出隊并訪問,左右結點入隊,直到隊列為空,形成按廣度優先搜索(BFS)的遍歷方式。 基本過程: 1) 根節點入隊; 2) 從隊列中出隊一個結點; 3) 訪問該結點; 4) 如果該結點左右子結點非空,依次入隊; 5) 隊列為空,遍歷結束。 1 void cengorder(tree t){ 2 if(!t) 3 return; 4 queue<tree> re; 5 tree p = T; 6 re.push(p); 7 while(!re.empty()){ 8 p = re.front(); 9 visit(p); 10 if(p->left) 11 re.push(p->left); 12 if(p->right) 13 re.push(p->right) 14 } 15 }?
總結
以上是生活随笔為你收集整理的数据结构 · 二叉树遍历的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: shell脚本监控系统负载、CPU和内存
- 下一篇: 如何解决div里面img图片下方有空白的