- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- int total;
- struct node{
- int n;
- char name[50];
- struct node *left, *right;
- };
- void inorder(struct node *ptr){
- if(ptr){
- inorder(ptr->left);
- inorder(ptr->right);
- }
- return;
- }
- int main(){
- int n, way;
- char temp[50];
- struct node *current, *tree, *search;
- while(n--){
- total = 0;
- if(temp[0] == '\0')break;
- if(total == 0){
- tree->n = 1;
- tree->left = tree->right = NULL;
- }else{
- search = tree;
- current->left = current->right = NULL;
- while(1){
- // printf("[%d]", way);
- if(way == 0){
- // puts("here");
- search->n++;
- // printf("%s:[%d]++\n", search->name, search->n);
- search = NULL;
- break;
- }else if(way < 0){
- //puts("left");
- if(search->left == NULL){
- search->left = current;
- current->n = 1;
- current->left = current->right = NULL;
- search = NULL;
- break;
- }else if(search->left != NULL){
- // printf("left:[%s]\n", search->left->name);
- search = search->left;
- }
- }else if(way > 0){
- //puts("right");
- if(search->right == NULL){
- search->right = current;
- current->n = 1;
- current->left = current->right = NULL;
- search = NULL;
- break;
- }else if(search->right != NULL){
- // printf("right:[%s]\n", search->right->name);
- search = search->right;
- }
- }
- }
- }
- total++;
- }
- inorder(tree);
- }
- return 0;
- }
Raw Paste