下のソースコードを、insertの引数に木の深さをカウントするためのlevを追加して、追加する節点の木における深さ(レベル)を返すように変更したいのですがどのようにしたら良いでしょうか?
void insert(struct vertex *p,int x)
{
struct vertex *pt;
if(p->data>x&&p->l!=NULL)
return(insert(p->l,x));
if(p->data<x&&p->r!=NULL)
return(insert(p->r,x));
pt=newv();
pt->data=x;
pt->l=pt->r=NULL;
if(p->data>x)
p->l=pt;
else
p->r=pt;
}
二分木insertについて
Re: 二分木insertについて
この質問で書かれているコードが参考になりそうです。
挿入した木の深さを返す関数 - プログラマ専用SNS ミクプラ
リンク先のinsert関数において、levは節点pの深さになっているので、
追加した節点ptの深さを返すようにするにはlevのかわりにlev+1をreturnするようにするとよさそうです。
挿入した木の深さを返す関数 - プログラマ専用SNS ミクプラ
リンク先のinsert関数において、levは節点pの深さになっているので、
追加した節点ptの深さを返すようにするにはlevのかわりにlev+1をreturnするようにするとよさそうです。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)