bfs-dfs-bst
来源:互联网 发布:淘宝官换机靠谱吗 编辑:程序博客网 时间:2024/04/30 00:48
/**
* Definition for binary tree
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
bfs :
void bfs(TreeNode *root){if(root==NULL)return;queue<TreeNode *> x;TreeNode *t;x.push(root);while(!x.empty()){t = x.front();if(t->left!=NULL)x.push(t->left);if(t->right!=NULL)x.push(x->right);// do somethingx.pop();}}递归dfs:
void dfs(TreeNode *root){if(root==NULL)return;if(root->left != NULL)dfs(root->left);if(root->right != NULL)dfs(root->right);// do something}迭代dfs, post_order traverse,稍微修改left,right顺序,就是其right-middle-left这种形式的访问。
void dfs(TreeNode *root){if(root==NULL)return;stack<TreeNode *> x;unorder<TreeNode *,bool> m;x.push(root);while(!x.empty()){t = x.top();if(t->left != NULL && m[t->left] == 0)x.push(t->left);else if(t->right != NULL && m[t->right] == 0)x.push(t->right);else{// do somethingm[t] = 1;x.pop();}}}递归inorder
void inorder(TreeNode *root){if(root==NULL)return;if(root->left != NULL)inorder(root->left);// do something with rootif(root->right != NULL)inorder(root->right);}迭代inorder
void inorder(TreeNode *root){if(root==NULL)return;stack<TreeNode *> x;unordered_map<TreeNode *,bool> m;TreeNode *t;x.push(back);while(!x.empty()){t = x.top();if(t->left != NULL && m[t->left] == 0){t = t->left;x.push(t);}else{x.pop();m[t] = 1;// do somethingif(t->right != NULL)x.push(t->right);}}}
迭代preorder traverse
void inorder(TreeNode *root){if(root==NULL)return;stack<TreeNode *> x;unordered_map<TreeNode *,bool> m;TreeNode *t;x.push(back);while(!x.empty()){t = x.pop();mark[t] = true;// dosomething if(t->left != NULL && m[t->left] == 0)x.push(t->left);if(t->right != NULL && m[t->right] == false)x.push(t->right);}}
0 0
- bfs-dfs-bst
- Leetcode-DFS+BST
- BFS-DFS
- BFS DFS
- DFS+BFS
- BFS DFS
- DFS BFS
- DFS & BFS
- BFS,DFS
- dfs bfs
- BFS&DFS
- DFS BFS
- BFS && DFS
- BFS DFS
- DFS & BFS
- DFS&BFS
- BFS&DFS
- dfs && bfs
- 学会假设人生其实是虚无无意义的情况下人应该做什么
- 头文件库
- 编程珠玑之第二章习题4
- java中HashMap详解
- /dev/dm-N、 /dev/mpath/mpathN、/dev/mapper/mpathN的区别
- bfs-dfs-bst
- 【POJ1740】A New Stone Game 构造博弈
- iOS项目目录结构和开发流程
- NYOJ 题目138找球号(二)(哈希)
- Bower常用命令
- ubuntu 安装go语言编译环境
- 常用快捷方式及设置
- Java基础(4)
- 大唐珲春发电厂空压机油采购招标公告