30/09/2018, 18:59
Tìm giúp lỗi ? sao mà k chạy đc?
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("
Bieu thuc tien to la: ");
PreOrder(a);
return 0;
}
Bài liên quan
thay dấu ; thành dấu ,
Đấy chỉ là 1 lỗi nhỏ trong 1 nhiều lỗi trong đoạn code này bạn à
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.
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.