質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

1956閲覧

葉の総数を返す

kt3302y

総合スコア27

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2015/08/02 10:38

以下に示すのは与えられた木に含まれるノードの総数を返す関数のプログラムです。
これを参考にこの木に含まれるすべての葉の総数を返す関数を書くにはどうしたらよいのでしょうか。
木のノードnodeの子供のノードはnode.childrenに配列として格納してあります。

javascript

1function n_node(node){ 2var n = 1 3for(var i = 0;i < node.children.length;i++) 4n += n_node(node.children[i]) 5return n 6}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

... どうしたらよいのでしょうか。...

どんなことを試してみましたか?

n_node(node) の動作を確認、テストするためには、n_node(node) 以外のコードも必要です。
どのようなコードを用意して n_node(node) の動作を確認したかを教えて欲しいです。
その上で n_leaf(node) として 葉の数を返す関数を作るとして、どんなコードを試したか? そのコードでは
どんな問題があったか?を示していだきたいです。
そうすれば、 どんな風に考えれが解決ができるかの具体的なヒントが回答として得られると思います。

// 基本的な演習問題の解答コードそのものを ここで得ることは難しいとおもいます。

投稿2015/08/02 12:31

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

ノードnに対してf(n)という関数を考えます。
nが葉ノードならば1を返します。
そうでないならばnの子ノードをnc[i]として
Σ(f(nc[i]))を返します。
f(n)が目的の関数です。


提示のコードをどう参考にするかですが、
提示のコードをよく読むと、

javascript

1var n = 1 //自分自身をカウント 2for(var i = 0;i < node.children.length;i++) 3n += n_node(node.children[i]) //子要素に関数適用した結果をカウント

となっているので、自分がなんであれ無差別に自身をカウントに含めているのを、
自身が葉ノードの時だけカウントすれば、目的の関数になります。

再帰はなれるまで自分で作るのが難しいと思いますが頑張ってください。

投稿2015/08/02 10:48

編集2015/08/02 11:02
ozwk

総合スコア13521

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問