二叉树基操

struct node{
	char data;
	node *lchild;
	node *rchild;
};

node* newnode(char v){
	node* Node=new node;
	Node->data=v;
	Node->lchild=Node->rchild=NULL;
	return Node;
}

void search(node* root,char x,char newdata){
	if(root==NULL){
		return;
	}
	if(root->data==x){
		root->data=newdata;
	}
	search(root->lchild,x,newdata);
	search(root->rchild,x,newdata);
}

void insert(node* &root,char x){
	if(root==NULL){
		root=newnode(x);
		return;
	}
	if(x<=root->data)
	insert(root->lchild,x); 
	else
	insert(root->rchild,x);
	
}

node* create(char data[],int n){
	node* root=NULL;
	for(int i=0;i<n;i++){
		insert(root,data[i]);	
	}
	return root; 
}

void preorder(node* root){
	if(root==NULL){
		return;
	}
	printf("%c",root->data);
	preorder(root->lchild);
	preorder(root->rchild);
}

void inorder(node* root){
	if(root==NULL){
		return;
	}
	inorder(root->lchild);
	printf("%c",root->data);
	inorder(root->rchild);
}

void posorder(node* root){
	if(root==NULL){
		return;
	}
	posorder(root->lchild);
	posorder(root->rchild);
	printf("%c",root->data);
}

int main(){
	char s[1000];
	gets(s);
	node* t=new node; 
	t=create(s,strlen(s));
	preorder(t);
	printf("\n");
	inorder(t);
	printf("\n");
	posorder(t);
	printf("\n");
	char in;
	scanf("%c",&in);
	insert(t,in);
	preorder(t);
	printf("\n");
	inorder(t);
	printf("\n");
	posorder(t);
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值