Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- struct treenode {
- struct treenode *left;
- struct treenode *right;
- int data;
- };
- typedef struct treenode TREENODE;
- typedef TREENODE *TREE;
- void insert_node(TREE *tp, int value);
- void preorder_print(TREE t);
- int is_empty_tree ( TREE t );
- int root_value(TREE t);
- int main(){
- TREE t = NULL;
- int i = 0, tmp;
- do{
- printf("N%02d: ", i + 1);
- scanf(" %d", &tmp);
- insert_node(&t,tmp);
- i++;
- }while(tmp > 0);
- preorder_print(t);
- return 0;
- }
- void insert_node(TREE *tp, int value) {
- if (*tp == NULL) {
- printf("tp == null\n");
- *tp = malloc(sizeof(TREENODE));
- (*tp)->data = value;
- (*tp)->left = NULL;
- (*tp)->right = NULL;
- }else if (value < (*tp)->data ){
- printf("tp <<<\n");
- insert_node(&((*tp)->left), value);
- }else if (value > (*tp)->data ){
- printf("tp >>>\n");
- insert_node(&((*tp)->right), value);
- }else{
- printf("duplicate node\n");
- }
- }
- int is_empty_tree ( TREE t ){
- if (t == NULL) {
- printf("in empty null\n");
- return 1;
- }else{
- printf("NO in empty null\n");
- return 0;
- }
- }
- int root_value(TREE t){
- if (!is_empty_tree){
- fprintf(stderr, "Tree is empty \n");
- return -1;
- }else{
- return t->data;
- }
- }
- TREE ls_tree(TREE t){
- return t->left;
- }
- TREE rs_tree(TREE t){
- return t->right;
- }
- void preorder_print(TREE t){
- if (!is_empty_tree(t)) {
- printf("%d\n", root_value(t));
- preorder_print(ls_tree(t));
- preorder_print(rs_tree(t));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement