二叉树的深度优先,广度优先,以及层次遍历算法
2015-09-17 13:20
681 查看
深度优先算法
广度优先算法
层次遍历算法
void deepFirstSearch(Tree root) { stack<node*>nodestack; nodestack.push(root); Node *node; while(!nodeStack.Empty()) { node=nodestack.top(); node.stcakpop(); printf(); if(node->rchild) { nodestack.push(node->rchild); } if(node->lchild) { nodestack.push(node->lchild); } } }
广度优先算法
void breathFirstSearch(Tree root) { Queue<Node *>Nodequeue; Nodequeue.push(root); Node *node; while(!NodeQueue.Empty()) { node=NodeQueue.front; NodeQueue.pop(); printf(); if(node->lchild) { NodeQueue.push(node->lchild); } if(node->rchild) { NodeQueue.push(node->rchild); } } }
层次遍历算法
void levelFirstSearch(Tree T,int level) { if(level<0||T==NULL) { return -1; } if(level==0) { printf(T); } else { return levelFirstSearch(T->lchild,level-1) + levelFirstSearch(T->rchild,level-1) } }
相关文章推荐
- leetcode笔记:Linked List Cycle
- 分享10条PHP性能优化的小技巧,帮助你更好的用PHP开发:
- java关键字说明
- M—V—C模式
- oracle11g登录的问题
- iOS激情详解之URL同步,异步连接
- 用ListView实现GridView
- sauvola算法实现
- java execute、executeQuery和executeUpdate之间的区别
- ASP.NET动态网站制作(1)--html
- Codeforces Round #320 (Div. 2) [Bayan Thanks-Round] D "Or" Game 枚举+前缀后缀
- L7 linux shell编程练习
- java中的抽象类和接口详解
- 后台任务的抉择
- Week3---9月22日 图像与多媒体
- UVa 11584:Partitioning by Palindromes(DP)
- 不均匀光照文本图像的二值化
- XCODE的演变及使用经验分享
- 锋利的Jquery【读书笔记】 -- 第五章 jQuery对表单表格的操作
- canvas雷达扫描特效