#include
#include
#include
using namespace std;
#define ElementType char
#define N 100
typedef struct TNode* BT;
struct TNode{
ElementType data;
BT left, right;
};
int i = 0;
BT Insert(BT BST,ElementType X) {
if (!BST) {
BST = (BT)malloc(sizeof(TNode));
BST->data = X;
BST->left = BST->right = NULL;
}
else {
if (X < BST->data)
BST->left = Insert(BST->left, X);
else if (X > BST->data)
BST->right = Insert(BST->right, X);
}
return BST;
}
char Find(BT BST, ElementType X)
{
if (!BST) {
return NULL;
}
else {
if (BST->data==X)
return X;
if (BST->data < X)
Find(BST->right, X);
else if(BST->data >X)
Find(BST->left, X);
}
}
void PreOrderTraverse1(BT T) {
if (T) {
printf("%c", T->data);
PreOrderTraverse1(T->left);
PreOrderTraverse1(T->right);
}
}
int main() {
BT T = (BT)malloc(sizeof( BT));
char data[7] = { 1,2,3,4,5,6,7 };
for (int i = 0; i <=6; i++)
{
printf("%c", Insert(T, data[i])->data);
}
printf("前序遍历:");
PreOrderTraverse1(T);
return 0;
}
大哥们看一下,为什么我把数据插入到树里面在输出来的时候是错的,调试过是说插入里面 if (X < BST->data) BST->data是无效的??,大概就是输出来答案都是各种乱码