0

重複の可能性:
Javascript で変数を参照渡しする

必死に解決策を探します。終了するJavaScriptプロジェクトがあり、邪魔になるのはこの小さなことだけです。関数パラメーターの隣に置くには、cのようなものとアンパサンドだけが必要なので、参照によって渡され、関数の外部で変更されます。

今、私は他の方法があることを知っています。しかし、私の場合、これが私を助ける唯一のものです。これは二分探索木を作成するプログラムで、元々は C++ で作成しましたが、コードの実行中に木がどのように生成されるかを示すため、JavaScript に変換する必要があります。これは私のプロジェクトです。したがって、バイナリ構造を作成するには、アンパサンドのようなものだけが役立ちます。

function nod()
{
    var info;
    var left;
    var right;
}

var rad;
rad = new nod();
rad = null;

function create(rad,x) // create(nod *&rad, int x) in c++
{
    if(rad==null)
    {
        rad = new nod();
        rad.info = x ;
        rad.left = rad.right = null;
    }
    else
    {
        if(x < rad.info)
        {
            create(rad.left,x);
        }
        else
        { 
            create(rad.right,x);
        }
    }
}

function read(rad) // read(nod *&rad) in c++
{
    var input = [
                    0,
                    10,
                    2,
                    1,
                    8,
                    9,
                    4,
                    5,
                    3,
                    6,
                    20,
                    11,
                    30,
                    21,
                    31,
                    22,
                    23,
                ];
    var i;
    for(i=1;i<=16;i++)
    {
        create(rad,input[i]);
    }
}

read(rad);
4

2 に答える 2

0

テストされていませんが、再帰がどうしても必要ない場合は、次を使用できます。

function create(rad, x) // create(nod *&rad, int x) in c++
{
  var result = new nod();
  result.info = x;
  result.left = result.right = null;

  while (true) {
    if (x < rad.info) {
      if (rad.left) {
        rad = rad.left;
        continue;
      }
      rad.left = result;
      break;
    } else
      if (rad.right) {
        rad = rad.right;
        continue;
      }
      rad.right = result;
      break;
    }
  }
}
于 2012-06-19T12:50:18.420 に答える
0

JavaScript では、オブジェクトは参照によって渡されます。したがって、値をオブジェクトとして渡してみてください。ヒント: {value:your_value} のように渡してみてください

于 2012-06-19T12:42:22.023 に答える