浏览二叉树后出现无用的东西
After browsing binary tree appears something unuseful
我创建了一个二叉树。
作为点头,我给了 values:1,5,7,3,4,2.After 添加给定的点头并按预先顺序遍历树,我得到 result:1-5-3- 2-4-7-33-。
我不明白这个 33 来自哪里。谁知道,求助
#include <iostream>
using namespace std;
typedef struct nod
{
int inf;
nod *st, *dr;
}ARB;
ARB *tns;
void add(ARB * &r,int info)
{
if(!r)
{
r=new ARB;
r->inf=info;
r->st=r->dr=0;
}
else
if(info<r->inf) add(r->st,info);
else if(info>r->inf) add(r->dr,info);
else cout<<"\n exist\n";
}
void create(ARB* &r)
{
int info,n,i;
cout<<"nr of nods";cin>>n;
for(i=1;i<=n;i++)
{
cout<<"nod: "<<i<<":";
cin>>info;
add(r,info);
}
}
void rsd(ARB *r)
{
if(r != NULL)
{
printf(" %d - ",r->inf);
rsd(r->st);
rsd(r->dr);
}
}
int main()
{
ARB *rad=0;
int x;
create(rad);
add(rad,x);
rsd(rad);
}
计算机添加了一个额外的节点,因为您告诉它:
ARB *rad=0;
int x; // <-- unspecified value
create(rad);
add(rad,x); // <-- added to tree
rsd(rad);
我创建了一个二叉树。 作为点头,我给了 values:1,5,7,3,4,2.After 添加给定的点头并按预先顺序遍历树,我得到 result:1-5-3- 2-4-7-33-。 我不明白这个 33 来自哪里。谁知道,求助
#include <iostream>
using namespace std;
typedef struct nod
{
int inf;
nod *st, *dr;
}ARB;
ARB *tns;
void add(ARB * &r,int info)
{
if(!r)
{
r=new ARB;
r->inf=info;
r->st=r->dr=0;
}
else
if(info<r->inf) add(r->st,info);
else if(info>r->inf) add(r->dr,info);
else cout<<"\n exist\n";
}
void create(ARB* &r)
{
int info,n,i;
cout<<"nr of nods";cin>>n;
for(i=1;i<=n;i++)
{
cout<<"nod: "<<i<<":";
cin>>info;
add(r,info);
}
}
void rsd(ARB *r)
{
if(r != NULL)
{
printf(" %d - ",r->inf);
rsd(r->st);
rsd(r->dr);
}
}
int main()
{
ARB *rad=0;
int x;
create(rad);
add(rad,x);
rsd(rad);
}
计算机添加了一个额外的节点,因为您告诉它:
ARB *rad=0;
int x; // <-- unspecified value
create(rad);
add(rad,x); // <-- added to tree
rsd(rad);