📄 7.cpp
字号:
#include <stdio.h>
#include <stdlib.h>
typedef struct treenode
{
int data;
struct treenode *lchild;
struct treenode *rchild;
}Treenode;
Treenode * search(Treenode *head,int i);
void goover(Treenode *head);
void main()
{
Treenode *head=NULL;
int i;
scanf("%d",&i);
while(i!=-1)
{
head=search(head,i);
scanf("%d",&i);
}
printf("\nthis result is:\n");
goover(head);
}
Treenode * search(Treenode * head ,int x )
{
Treenode *p,*p1,*temp,*p3;
int k;
p=head;
p3=head;
p1=p;
if(p==NULL)
{
printf("not exist\t");
p=(Treenode *)malloc(sizeof Treenode);
p->lchild=NULL;
p->rchild=NULL;
p->data=x;
p1=p;
p3=p;
printf("%x\n",p);
}
else{
while(p!=NULL )
{
if(x>p->data)
{
p1=p;
p=p->rchild;
k=0;
}
else if(x<p->data)
{
p1=p;
p=p->lchild;
k=1;
}
else if(x==p->data)
{
k=-1;
break;
}
}
if(k==-1)
{
printf("exist\t\t");
printf("%x\n",p);
return(p3);
}
else
{
printf("not exist\t");
temp=(Treenode *)malloc(sizeof Treenode);
temp->lchild=NULL;
temp->rchild=NULL;
temp->data=x;
if(k==0)
{
p1->rchild=temp;
}
if(k==1)
{
p1->lchild=temp;
}
printf("%x\n",temp);
}
}
return(p3);
}
void goover(Treenode *head)
{
Treenode *p;
p=head;
if(p==NULL)
{
return;
}
else
{
goover(p->lchild);
printf("%x ",p);
printf("%d\n",p->data);
goover(p->rchild);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -