C++二叉树的基本用法

更新时间:2023-07-23 22:30:07 阅读: 评论:0

C++⼆叉树的基本⽤法PS.更多数据结构知识详见:
C++⼆叉树的数据结构
struct TreeNode
{leftout
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int val):val(val),left(nullptr),right(nullptr){}
sfr};
构建⼆叉树
//输⼊序列:A B D G # # H # # #  C E # I # # F # #
/
/构建⼆叉树
void CreateBinaryTree(TreeNode*&root)
{
char ch;
cin >> ch;
if(ch =='#')
{
root =nullptr;
}
el
{
root =new TreeNode(ch);
CreateBinaryTree(root->left);
CreateBinaryTree(root->right);
}
罐头 英文}
infinit
前序遍历
//前序遍历
void PreOrderTraver(TreeNode* root)
{
if(root ==nullptr)
return;
cout << root->val <<" ";
PreOrderTraver(root->left);
PreOrderTraver(root->right);
2020年9月四级真题第一套
}
中序遍历
//中序遍历
void InOrderTraver(TreeNode* root) {
if(root ==nullptr)
return;
InOrderTraver(root->left);
cout << root->val <<" "; InOrderTraver(root->right);
}
后序遍历
//后序遍历
void LastOrderTraver(TreeNode* root) {push是什么意思
if(root ==nullptr)
return;
LastOrderTraver(root->left); LastOrderTraver(root->right);
cout << root->val <<" ";
}
层序遍历
jerusalem//层序遍历
void FloorOrderTraver(TreeNode *root) {
if(root ==nullptr)
return;
queue<TreeNode*> que;
que.push(root);
while(!pty())
{
TreeNode* cur = que.front();
que.pop();
cout << cur->val <<" ";
if(cur->left)
que.push(cur->left);
if(cur->right)
que.push(cur->right);
}
}
测试
curt
//测试
void testBinaryTree()
{
TreeNode* root =nullptr; CreateBinaryTree(root);
cout <<"输出前序遍历的结果 :"<< endl; PreOrderTraver(root);
cout << endl << endl;
雅思报名官方网站
homework什么意思cout <<"输出中序遍历的结果 :"<< endl; InOrderTraver(root);
cout << endl << endl;
cout <<"输出后序遍历的结果 :"<< endl; LastOrderTraver(root);
cout << endl << endl;
cout <<"输出层序遍历的结果 :"<< endl; FloorOrderTraver(root);
cout << endl << endl;
}
运⾏结果
⼆叉树的应⽤

本文发布于:2023-07-23 22:30:07,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/186668.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图