二分木insertについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
mo56
記事: 1
登録日時: 4年前

二分木insertについて

#1

投稿記事 by mo56 » 4年前

下のソースコードを、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;
}

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 二分木insertについて

#2

投稿記事 by みけCAT » 4年前

この質問で書かれているコードが参考になりそうです。
挿入した木の深さを返す関数 - プログラマ専用SNS ミクプラ
リンク先のinsert関数において、levは節点pの深さになっているので、
追加した節点ptの深さを返すようにするにはlevのかわりにlev+1をreturnするようにするとよさそうです。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

返信

“C言語何でも質問掲示板” へ戻る