-3
#include <stdio.h>
#include <stdlib.h>
struct node
{
int data;
struct node *left;
struct node *right;
};
typedef struct node* LIST;
LIST getnode(int dat)
{
LIST temp=(LIST)malloc(sizeof(LIST *));
temp->data=dat;
temp->left=NULL;
temp->right=NULL;
return temp;
}
void preorder(struct node *tree)
{
if(tree==NULL)
return;
printf("%d",tree->data);
preorder(tree->left);
preorder(tree->right);
}
void inorder(LIST tree)
{
if(tree==NULL)
return;
inorder(tree->left);
printf("%d",tree->data);
inorder(tree->right);
}
void postorder(LIST tree)
{
if(tree==NULL)
return;
postorder(tree->left);
postorder(tree->right);
printf("%d",tree->data);
}
int main()
{
int ch;
LIST root=NULL;
root=getnode(2);
printf("hi");
root->left=getnode(3);
root->right=getnode(5);
root->right->left=getnode(4);
root->right->right=getnode(9);
printf("How would you like to traverse the tree??
\n1.Preorder\n2.Inorder\n3.Postorder\nENTER YOUR CHOICE\n");
scanf("%d",&ch);
switch(ch)
{
case 1:
preorder(root);
break;
case 2:
inorder(root);
break;
case 3:
postorder(root);
break;
}
}
내 프로그램 실행이 중지됩니다. 다른 트리 순회를 인쇄하고 싶습니다. 위의 code.program의 오류가 어떤 곳에서 실행 중이고 멈추는 지 설명하십시오. 스위치 케이스 내에서 명령문을 실행하려고 시도하고 있지만 중지됩니다. 솔루션을 제안하십시오.프로그램이 실행 중이고 일부 장소에서 중단됩니다.
코드를 들여 씁니다. – user694733
코드에 따르면 한 번에 하나의 유형의 트레 버셜 만 인쇄 할 수 있습니다. 멈추는 자세를 주시겠습니까? – ANjaNA