第十二行一开始没写搞得一直报错。
代码
#include <cstdio>#include <vector>using namespace std;struct Node{int data;Node* lchild;Node* rchild;};void insert(Node* &root, int input){if(root == NULL){root = new Node;root->data = input;root->lchild = NULL;root->rchild = NULL;return;}if(input == root->data) return;else if(input > root->data){insert(root->rchild, input);}else {insert(root->lchild, input);}return;}void pre_order(Node *root){if(root == NULL) return;printf("%d ",root->data);pre_order(root->lchild);pre_order(root->rchild);}void in_order(Node *root){if(root == NULL) return;in_order(root->lchild);printf("%d ",root->data);in_order(root->rchild);}void post_order(Node *root){if(root == NULL) return;post_order(root->lchild);post_order(root->rchild);printf("%d ",root->data);}int main(){int n, input;while(scanf("%d", &n)!=EOF){Node *root = NULL;vector<int> input(n, 0);for(int i = 0; i < n; i++) scanf("%d", &input[i]);for(int i = 0; i < n; i++){insert(root, input[i]);}pre_order(root);printf("\n");in_order(root);printf("\n");post_order(root);printf("\n");}return 0;}
