#include #include #include struct nodetype { struct nodetype *left ; int info ; struct nodetype *right; }; typedef struct nodetype *NODEPTR; NODEPTR maketree(int); NODEPTR getnode(void); void inordtrav(NODEPTR); int main(void) { NODEPTR root , p , q; printf("%s\n","Enter First number"); scanf("%d",&number); root=maketree(number); /* insert first root item */ while(scanf("%d",&number) !=EOF) { p=q=root; /* find insertion point */ while((number !=p->info) && q!=NULL) {p=q; if (number info) q = p->left; else q = p->right; } q=maketree(number); /* insertion */ if (number==p->info) printf("%d is a duplicate \n",number); else if (numberinfo) p->left=q; else p->right=q; } printf("Tree Created \n "); /* inorder Traversing */ inordtrav(root); } NODEPTR maketree(int x) { NODEPTR p; p=getnode(); p->info=x; p->left=NULL;p->right=NULL; /* printf("entered %d",p->info); getchar(); */ return(p); } void inordtrav(NODEPTR tree) { if (tree != NULL) { inordtrav(tree->left); printf("%d \n", tree->info); inordtrav(tree->right); } } NODEPTR getnode(void) { NODEPTR q; q = (NODEPTR) malloc(sizeof(struct nodetype)); return(q); } Do some modifications to the program which will get data from an array structure defined below. Your program will generate the tree and display the output person as descending order of name. struct person { int empNo; char name[12]; }; struct person tenPerson[10]={123,”Mehmet”, 234,”Sevgi”, 128,”Osman”, 432,”Mert”, 287,”Ayse”, 423,”Kemal”, 634,”Lale”, 828,”Sefer”, 252,”Meral”, 887,”Demet”};
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
struct nodetype {
struct nodetype *left ;
int info ;
struct nodetype *right;
};
typedef struct nodetype *NODEPTR;
NODEPTR maketree(int);
NODEPTR getnode(void);
void inordtrav(NODEPTR);
int main(void)
{
NODEPTR root , p , q;
printf("%s\n","Enter First number");
scanf("%d",&number);
root=maketree(number); /* insert first root item */
while(scanf("%d",&number) !=EOF)
{ p=q=root;
/* find insertion point */
while((number !=p->info) && q!=NULL)
{p=q;
if (number <p->info)
q = p->left;
else
q = p->right;
}
q=maketree(number);
/* insertion */
if (number==p->info)
printf("%d is a duplicate \n",number);
else if (number<p->info)
p->left=q;
else p->right=q;
}
printf("Tree Created \n ");
/* inorder Traversing */
inordtrav(root);
}
NODEPTR maketree(int x)
{
NODEPTR p;
p=getnode();
p->info=x;
p->left=NULL;p->right=NULL;
/* printf("entered %d",p->info);
getchar(); */
return(p);
}
void inordtrav(NODEPTR tree)
{
if (tree != NULL) {
inordtrav(tree->left);
printf("%d \n", tree->info);
inordtrav(tree->right);
}
}
NODEPTR getnode(void)
{
NODEPTR q;
q = (NODEPTR) malloc(sizeof(struct nodetype));
return(q);
}
Do some modifications to the program which will get data from an array structure defined below.
Your program will generate the tree and display the output person as descending order of name.
struct person
{
int empNo;
char name[12];
};
struct person tenPerson[10]={123,”Mehmet”,
234,”Sevgi”,
128,”Osman”,
432,”Mert”,
287,”Ayse”,
423,”Kemal”,
634,”Lale”,
828,”Sefer”,
252,”Meral”,
887,”Demet”};
Trending now
This is a popular solution!
Step by step
Solved in 3 steps with 4 images