2025年广度优先搜索树怎么画(广度优先搜索树是唯一的吗)

广度优先搜索树怎么画(广度优先搜索树是唯一的吗)1 include lt vector gt 2 include lt iostream gt 3 include lt stack gt 4 include lt queue gt 5 using namespace std 6 7 struct BitNode 8

大家好,我是讯享网,很高兴认识大家。



 1 #include <vector>  2 #include <iostream>  3 #include <stack>  4 #include <queue>  5 using namespace std;  6  7 struct BitNode  8 {  9 int data; 10 BitNode *left, *right; 11 BitNode(int x) :data(x), left(0), right(0){} 12 }; 13 14 void Create(BitNode *&root) 15 { 16 int key; 17 cin >> key; 18 if (key == -1) 19 root = NULL; 20 else 21  { 22 root = new BitNode(key); 23 Create(root->left); 24 Create(root->right); 25  } 26 } 27 28 void PreOrderTraversal(BitNode *root) 29 { 30 if (root) 31  { 32 cout << root->data <<  ; 33 PreOrderTraversal(root->left); 34 PreOrderTraversal(root->right); 35  } 36 } 37 38 //深度优先搜索 39 //利用栈,现将右子树压栈再将左子树压栈 40 void DepthFirstSearch(BitNode root) 41 { 42 stack<BitNode> nodeStack; 43  nodeStack.push(root); 44 while (!nodeStack.empty()) 45  { 46 BitNode *node = nodeStack.top(); 47 cout << node->data <<  ; 48  nodeStack.pop(); 49 if (node->right) 50  { 51 nodeStack.push(node->right); 52  } 53 if (node->left) 54  { 55 nodeStack.push(node->left); 56  } 57  } 58 } 59 60 //广度优先搜索 61 void BreadthFirstSearch(BitNode root) 62 { 63 queue<BitNode> nodeQueue; 64  nodeQueue.push(root); 65 while (!nodeQueue.empty()) 66  { 67 BitNode *node = nodeQueue.front(); 68 cout << node->data <<  ; 69  nodeQueue.pop(); 70 if (node->left) 71  { 72 nodeQueue.push(node->left); 73  } 74 if (node->right) 75  { 76 nodeQueue.push(node->right); 77  } 78  } 79 } 80 81 int main() 82 { 83 BitNode *root = NULL; 84  Create(root); 85 //前序遍历 86  PreOrderTraversal(root); 87 //深度优先遍历 88 cout << endl << dfs << endl; 89  DepthFirstSearch(root); 90 //广度优先搜索 91 cout << endl << bfs << endl; 92  BreadthFirstSearch(root); 93 }

讯享网


讯享网

小讯
上一篇 2025-05-24 12:06
下一篇 2025-06-01 23:36

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/164726.html