#include
#include
struct stack
{
int data;
struct stack *left,*right,*parent;
} *head,*temp,*curr;
struct stack *push (struct stack *head, int val){
curr=head;
if(head==NULL){
head=(struct stack*) malloc (sizeof(struct stack*));
head->data=val;
head->parent=NULL;
head->left=NULL;
head->right=NULL;
} else {
while(curr!=NULL){
temp=curr;
if(valdata){
curr=curr->left;
} else {
curr=curr->right;
}
}
curr=(struct stack*) malloc (sizeof(struct stack*));
curr->data=val;
curr->parent=temp;
if(curr->datadata){
temp->left=curr;
} else temp->right=curr;
curr->left=NULL;
curr->right=NULL;
}
return head;
}
struct stack *preorder(struct stack *head) {
if (head == NULL) return head;
printf(“%d “,head->data);
preorder(head->left) ;
preorder(head->right);
};
void main()
{
int val;
printf(“Masukkan 10 digit angka [1-50]\n\n”);
for (int i=0;i<10;i++) {
do {
printf("Angka ke-%d : ",i+1);
scanf("%d",&val); fflush(stdin);
} while (val50);
head=push(head,val);
}
printf(“\n”);
preorder(head);
getchar();
}
Recent Comments