Tìm giúp lỗi code chuyển biểu thức trung tố thành tiền tố sử dụng cây nhị phân

Chuyển biểu thức trung tố thành tiền tố sử dụng cây nhị phân !
code =>:unamused:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <malloc>

typedef char DataType;
typedef struct Node
{
	DataType data;
	struct Node* left;
	struct Node* right;
};
typedef Node* Tree;

void MakeNullTree(Tree &T)
{
	T=NULL;
}

int EmptyTree(Tree T)
{
	return(T==NULL);
}

Tree LeftChild(Tree T)
{
	if(T->left !=NULL)
		return T->left;
	else 
		return NULL;
}

Tree RightChild(Tree T)
{
	if(T->right !=NULL)
		return T->right;
	else 
		return NULL;
}


Tree Create(DataType v; left l; right r)
{
	Tree N = (Tree)malloc(sizeof(Node));
	N->data = v;
	N->left = l;
	N->right = r;
}

void InOrder(Tree T)
{
	if(!EmptyTree(T))
	{
		InOrder(LeftChild(T));
		printf("%c ",T->data);
		InOrder(RightChild(T));
	}
}

void PreOrder(Tree T)
{
	if(!EmptyTree(T))
	{
		printf("%c ",T->data);
		PreOrderOrder(LeftChild(T));
		PreOrderOrder(RightChild(T));
	}
}

int main()
{
	Tree a = Create('a', NULL, NULL);
	Tree b = Create('b', NULL, NULL);
	Tree c = Create('c', NULL, NULL);
	Tree d = Create('d', NULL, NULL);
	Tree e = Create('e', NULL, NULL);
	Tree + = Create('+', a, b);
	Tree * = Create('*', +, c);
	Tree / = Create('/', d, e);
	Tree - = Create('-', *, /);
	
	printf("Bieu thuc trung to la: ");
	InOrder(a);
	
	printf("\nBieu thuc tien to la: ");
	PreOrder(a);
	
	return 0;
}

thay dấu ; thành dấu ,

1 Like

Đấy chỉ là 1 lỗi nhỏ trong 1 nhiều lỗi trong đoạn code này bạn à :frowning:

Lỗi gì thì chụp hình lỗi đưa lên.
Không ai rãnh để copy cả project về chạy thử đâu.

1 Like

Cảm ơn bạn ! Mình sẽ rút kinh nghiệm !

2 nhánh left right phải có kiểu Node* hoặc Tree. Hàm này cần có return Node đã được nối 2 nhánh.

Kiểu dữ liệu bạn tự định nghĩa mà lại không kiểm soát được tên của nó thì làm sao làm tiếp được.
Còn nhiều lỗi về về ngôn ngữ chứ không phải do thuật toán sai, mình không xem hết được.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?