二叉树的建立 (cs106B例子,无需添加“treenode.h”头文件)
1.void print(TreeNode* node);//中序遍历
2.int size(TreeNode* node);//二叉树一共有几个节点
#include<iostream>
using namespace std;
//TreeNode 结构,节点值,左右指针
struct TreeNode
{
int data;
TreeNode* left;
TreeNode* right;
TreeNode(int data):data(data),left(NULL),right(NULL){}
};
void print(TreeNode* node)//inorder
{
if (node!=nullptr)
{
print(node->left);
cout<<node->data<<endl;
print(node->right);
}
}
int size(TreeNode* node)
{
if (node==nullptr)
return 0;
else
return 1+size(node->left)+size(node->right);
}
int main()
{
/* 9
* / \
* 6 14
* / \ / \
* -3 7 11 19
*/
TreeNode* root = new TreeNode(9);
root->left = new TreeNode(6);
root->right = new TreeNode(14);
root->left->left = new TreeNode(-3);
root->left->right = new TreeNode(7);
root->right->left = new TreeNode(11);
root->right->right = new TreeNode(19);
root->right->left->right = new TreeNode(88);
cout<<print(root)<<endl;
cout<<size(root)<<endl;//一共多少个节点
return 0;
}