アプリ版:「スタンプのみでお礼する」機能のリリースについて

insert(node, object){
//挿入コード 再帰的に下りて行って目的の場所を見つけてノードを追加する
if (object < node.object)
if (node.left = null)
node.left <-- new Node (object);

のnew Node ってなに?関数の名前にスペース入ってるのが気持ち悪いです。。

A 回答 (3件)

https://oshiete.goo.ne.jp/qa/13655787.html

と合わせて思うに、次のようになっていると予想します。
・Java (あるいはそのフォロアー)言語をベースにしている
・Javaならではの記述、数学とは違った記述、プログラムとして記述すると初心者には何をしているかよくわからないような記述等を、独自の記述に変えている(この部分が「疑似コード」たる所以)

javaで書くなら、次のようになると思います。

public static void insert(Node node,Object object){
 //挿入コード 再帰的に下りて行って目的の場所を見つけてノードを追加する1
 if (object < node.object)
  if (node.left == null)
   node.left = new Node(object);

このうち
・public static 等の Javaならではの記述を削除
・void,Node,Object等、型を指定する記述を省略
・(初心者が間違いやすい) 代入の= を <-- に、比較の==を (世間で一般的な)=に
としたものが、提示された部分の疑似コードになっています。

 ただ、やりかたが中途半端というか
node.left <-- new Node (object);
 で new という一般人には馴染みのない記述がそのまま残っています。
 説明のためと割り切って
node.left <-- objectを値に持つ新規Node ;
 くらいにするとか。少なくとも
// 新規にobjectを値に持つノードを作って、左側に追加する
node.left <-- new Node (object);
 くらいのコメントは付けるべきだと思います。
    • good
    • 0
この回答へのお礼

なるほど~ありがとうございます。

お礼日時:2023/11/18 20:36

C++だとnewは演算子で、後に書いたクラスNodeのインスタンスを作って返します。

後ろの (object) はクラスNodeのコンストラクターに渡す引数ですね。
    • good
    • 0
この回答へのお礼

そゆことですか?ありがとうございます。

お礼日時:2023/11/18 20:37
    • good
    • 0
この回答へのお礼

えCプラプラわからなきゃわからないてことですか?

お礼日時:2023/11/17 19:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています