qcode
  • 创作工场专业版,一问多答!更智能、更完整、更原创
  • 这是一个超强内容创作平台,它会写文章、做设计、绘图、敲代码,有问必答!
🔥点击使用-免登录深度版🔥

编写一个程序,生成一棵二叉树并进行基本操作

时间2023-04-19 08:22:25 提问来自 上海市上海市 的网友 分类创作 浏览353
#include<iostream> using namespace std; struct TreeNode{ int data; //数据域 TreeNode *leftChild; //左子树指针域 TreeNode *rightChild; //右子树指针域 }; //定义二叉树结点的结构体 //创建二叉树:先序遍历创建二叉树:先输入一个数字0表示该节点为空节点,否则就是该节点的数据。 TreeNode* CreateTree(){ //返回一个指向新创建的节点的指针。 int data; //用来存储从键盘上输入的数字。 cout<<"请输入一个整数(0代表无):"; cin>>data; if(data == 0) return NULL; TreeNode *root = new TreeNode(); root->data = data; cout<<"请输入"<<data<<"的左子树:"; root->leftChild = CreateTree(); cout<<"请输入"<<data<<"的右子树:"; root->rightChild = CreateTree(); return root ; } //前序遍历二叉树:递归方式实现。 void PreOrder(TreeNode *root){ if (root == NULL) return ; cout << root -> data << " " ; PreOrder(root -> leftChild); PreOrder(root -> rightChild); } //中序遍历二叉树:递归方式实现。 void InOrder(TreeNode *root){ if (root == NULL) return ; InOrder(root -> leftChild); cout << root -> data << " " ; InOrder(root -> rightChild); } //后序遍历二叉树:递归方式实现。 void PostOrder(TreeNode *root){ if (root == NULL) return ; PostOrder(root -> leftChild); PostOrder(root -> rightChild); cout << root -> data << " " ;} int main(){ TreeNode* treeRoot=CreateTree(); cout<<endl<<endl; cout << "前序遍历:"; PreOrder (treeRoot) ; cout << endl ; cout << "中序遍历:"; InOrder (treeRoot) ; cout << endl ; cout

不满意?免费深度重写!

免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。

上一篇 气缸发动机和转子发动机结合的比例算法 下一篇 消防员关于深入贯彻中央八项规定精神学习的心得体会