Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include <stdlib.h>
- typedef struct list
- {
- int data;
- struct list *right;
- struct list *left;
- } node;
- typedef node *link;
- link create(int n)
- {
- link temp;
- temp=(link)malloc(sizeof(node));
- temp->data=n;
- temp->right=NULL;
- temp->left=NULL;
- return temp;
- }
- void insert(link tree,int n)
- {
- link temp;
- link curr=tree;
- link parent;
- temp=(link)malloc(sizeof(node));
- temp->data=n;
- temp->right=NULL;
- temp->left=NULL;
- while(curr!=NULL)
- {
- parent=curr;
- if(curr->data>n)
- curr=curr->left;
- else
- curr=curr->right;
- }
- if(parent->data>n)
- parent->left=temp;
- else
- parent->right=temp;
- }
- void inorder(link tree)
- {
- if(tree!=NULL)
- {
- inorder(tree->left);
- printf("%d ",tree->data);
- inorder(tree->right);
- }
- }
- void posorder(link tree)
- {
- if(tree!=NULL)
- {
- posorder(tree->left);
- posorder(tree->right);
- printf("%d ",tree->data);
- }
- }
- void preorder(link tree)
- {
- if(tree!=NULL)
- {
- printf("%d ",tree->data);
- preorder(tree->left);
- preorder(tree->right);
- }
- }
- void f(link tree)
- {
- if(tree!=NULL)
- {
- f(tree->left);
- f(tree->right);
- free(tree);
- }
- }
- int main()
- {
- link tree;
- int n;
- while(scanf("%d",&n)!=EOF)
- {
- int i;
- int num;
- for(i=0; i<n; i++)
- {
- scanf("%d",&num);
- if(i==0)
- tree=create(num);
- else
- insert(tree,num);
- }
- inorder(tree);
- printf("\n");
- posorder(tree);
- printf("\n");
- preorder(tree);
- f(tree);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement