課題で「2分探索木にデータを挿入する手続きを定義し、作った木を中順になぞって出力せよ」というのが出されました。
6
/ \
4 7
/ \
2 9
\ / \
3 8 10
\
11
\
12
このような木を考えプログラムを組み実行できたのですが、結果が「2,3,4,6,7,8,9,10,11,12」となってしまいます。中順だと「3,2,4,6,8,9,12,11,10,7」のはずなので合いません。
どこがおかしいのかご指摘お願いします。
ソースは以下の通りです。
program tree_search (input,output);
type elementtype = integer;
pointertype = ^celltype;
celltype = record
element : elementtype;
leftson : pointertype;
rightson: pointertype
end;
var root : pointertype;
procedure inorder( node:pointertype);
begin
if (node <> nil) then
begin
inorder( node^.leftson);
write( node^.element);
inorder( node^.rightson)
end
end; {中順になぞる}
procedure insert( x:integer; var p:pointertype);
begin
if ( p = nil) then
begin
new( p );
p^.element := x;
p^.leftson := nil;
p^.rightson := nil
end
else if ( x < p^.element ) then
insert( x,p^.leftson)
else if ( x > p^.element ) then
insert( x,p^.rightson)
end; {木に挿入する}
procedure create( var p:pointertype );
begin
p:= nil
end; {空の木を作る}
begin
create(root);
insert( 6,root );
insert( 4,root );
insert( 2,root );
insert( 3,root );
insert( 7,root );
insert( 9,root );
insert( 8,root );
insert( 10,root );
insert( 11,root );
insert( 12,root );
inorder( root )
end.
No.1ベストアンサー
- 回答日時:
中順、とは通りがけのことでしょうか?
だとすると、通りがけによる探索結果は
ノードのデータを昇順(または降順)に
出力します。
得られた結果は正しいです。
ちなみに、通りがけ以外の探索結果は下記のとおりです。
行きがけ
6, 4, 2, 3, 7, 9, 8, 10, 11, 12
帰りがけ
3, 2, 4, 8, 12, 11, 10, 9, 7, 6
> 「3,2,4,6,8,9,12,11,10,7」のはず
これは、当該の二分木を探索して得られる
いずれの結果にも当てはまりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) モードレスでユーザーフォームが開け(表示)ません。 4 2022/09/09 11:05
- Excel(エクセル) EXCEL マクロで行を挿入して貼り付けようとするとエラーになる。 2 2022/05/24 09:43
- PHP php エラー 3 2022/11/18 23:32
- MySQL 次の時間帯の勝率の合計を求めるSQL文 1 2023/07/04 17:12
- PHP php エラー 2 2022/10/23 16:43
- UNIX・Linux マスターブートレコード方式のbiosを使ったシステムでインストールされたlinuxで/dev/sda 1 2023/05/13 21:23
- PHP プログラムコードを入力する場合改行してもいいですか? 2 2022/10/02 16:05
- MySQL mysqlで INSERT と SELECTの用途は 1 2022/04/01 00:45
- その他(パソコン・スマホ・電化製品) pthonのframeに演算結果(数値)を表示したい 1 2023/06/05 22:08
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PYTHONのtkinterについて
-
PythonでSetWindowPosを使うに...
-
オブジェクトのランダムな位置表示
-
FLASHで「かるた」を作りたいの...
-
Excel VBAで読み込んだテキスト...
-
python ボタンを押すと複数の関...
-
Pythonのtkinterについて
-
ボタンの上にマウスを置くと虫...
-
四乗根を英語で言うと・・・
-
プログラミング、アーキテクチ...
-
YOASOBI
-
マウス自体の移動量の取得
-
FLASHでの色変更
-
マスクにグラデーションをかけ...
-
【VB.NET】別Formのボタンが押...
-
外部ファイルを読み込んでロス...
-
ウインドウハンドルとインスタ...
-
UWSCのBTN関数について。
-
AS3.0 読み込んだ外部テキスト...
-
下記のサイトのTOPページにある...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python ボタンを押すと複数の関...
-
else if文の順序を変えることに...
-
PYTHONのtkinterについて
-
Pythonのtkinterについて
-
四乗根を英語で言うと・・・
-
pythonの画像の貼り付けについて
-
SNMPの標準MIBについて
-
PythonでSetWindowPosを使うに...
-
pythonのグローバル変数
-
ボタンの上にマウスを置くと虫...
-
関数をプロパティとして代入する際
-
ADに参加していないPCからADサ...
-
レイヤーに配置されたムービー...
-
[FlashMX2004]動的にファイルを...
-
メニュースクロール
-
パーセントで配置したフラッシ...
-
Flashの表示サイズを動的に変更...
-
スライドショーのフェードイン...
-
swfがきちんと動作しない!
-
フルウィンドウのFlash Firefox...
おすすめ情報