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

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

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

このタグは、プログラム言語におけるデータ型structure(構造体)に関するタグです。

Q&A

1回答

1152閲覧

大学で出た課題がわかりません

cod

総合スコア0

structure

このタグは、プログラム言語におけるデータ型structure(構造体)に関するタグです。

0グッド

0クリップ

投稿2020/07/27 12:27

・数列(21、99,38,8,16)を要素に持つ完全二分木を制作し、その後シフトアップ/シフトダウンによりヒープとして再構成するプログラミングを作成せよ
・シフトアップ/シフトダウン1回ごとに数列を出力せよ
・完全2分岐はint型配列numを用いて作成する

というものです。
答えのプログラミングがわかる方回答していただけるとありがたいです

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

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

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

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

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

maisumakun

2020/07/27 12:27

どこまで書いてみましたか?
can110

2020/07/27 12:33

手計算で求めることはできますか?
cod

2020/07/27 12:36

x = num[1] num[1]= num[3] num[3]= x までです
guest

回答1

0

数列(21、99,38,8,16)を要素に持つ完全二分木を制作し

不可能です。

追記

定義によっては可能、また他の要素を持たないとは書いていないため、誤った回答として撤回します。

追記

C#

1using System; 2using System.Collections.Generic; 3using System.Linq; 4 5namespace ConsoleApp1 6{ 7 class Program 8 { 9 static void Main() 10 { 11 var heap = new Heap(); 12 heap.AddRange(new[] { 21, 99, 38, 8, 16 }); 13 } 14 } 15 16 class Heap 17 { 18 private int[] num = new int[0]; 19 20 public void Add(int value) 21 { 22 num = num.Append(value).ToArray(); 23 var current = num.Length - 1; 24 var parent = current / 2; 25 while (current > 0 && num[parent] > num[current]) 26 { 27 (num[parent], num[current]) = (num[current], num[parent]); 28 current = parent; 29 parent /= 2; 30 Console.WriteLine(this); 31 } 32 } 33 34 public void AddRange(IEnumerable<int> values) 35 { 36 foreach (var i in values) Add(i); 37 } 38 39 public override string ToString() 40 { 41 return string.Join(",", num); 42 } 43 } 44}

投稿2020/07/27 12:29

編集2020/07/27 13:39
Zuishin

総合スコア28669

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問