#include <iostream>
#include <cstdio>
#include <cstring>
#define maxn 1000
#define T char
using namespace std;
typedef struct btnode{
T data;
struct btnode *lchild;
struct btnode *rchild;
}btnode;
btnode *root = NULL;
btnode* newnode(T x) {
btnode* p = (btnode* )malloc(sizeof(btnode));
p->data = x;
p->lchild = NULL;
p->rchild = NULL;
return p;
}
bool insert1(T x){
btnode *r = NULL, *q = NULL, *p = root;
T k = x;
while(p) {
q = p;
if(k < p->data) {
p = p->lchild;
}
else if(k > p->data) {
p = p->rchild;
}
else {
cout << "duplicate!" << endl;
return false;
}
}
r = newnode(x);
if(root) {
if(k < q->data) {
q->lchild = r;
}
else {
q->rchild = r;
}
}
else{
root = r;
}
return true;
}
void preorder(btnode *bt) {
if(bt) {
preorder(bt->lchild);
cout << bt->data << ' ';
preorder(bt->rchild);
}
if(bt == NULL) {
return ;
}
}
int main()
{
char str[maxn];
int len = 0;
gets(str);
len = strlen(str);
for(int i = 0; i < len; i++) {
insert1(str[i]);
}
btnode *temp = root;
preorder(temp);
return 0;
}
二叉搜索树
最新推荐文章于 2025-04-29 16:04:18 发布