A 回答 (8件)
- 最新から表示
- 回答順に表示
No.8
- 回答日時:
> ただ、C++はまったくわからない…
僕はC++/JavaなどのOO-languageじゃないと
めんどくさくて書く気になりません。
# てか、Cにこだわる理由もメリットもないので。
お役に立てずにごめんなさい。
# どなたかのフォローを希望します。
ありがとうございます。
私も出来ることならC++を使いたいのですが…
CとJAVAしかわからないですよ
少し勉強すればC++もいけると思うんですが、
そんな余裕はないし…
># どなたかのフォローを希望します。
どなたかよろしくお願いします。
No.7
- 回答日時:
> 反則なのは百も承知で、C++なら数行で書けます。
...やっちまいました^^; 仕切り直し:
#include <iostream>
#include <set>
int main() {
std::set<int> tree;
for ( int i = 0; i < 10; i += 2) tree.insert(i);
std::set<int>::iterator hi = tree.lower_bound(5);
std::set<int>::iterator lo = hi; --lo;
std::cout << "5 は " << *lo << "と" << *hi << "の間" << std::endl;
return 0;
}
--- 実行結果 ---
5 は 4と6の間
この回答への補足
回答ありがとうございます。
私のやりたいことは伝わったようですね。
ただ、C++はまったくわからない…
ほんと何回もありがとうございます。
No.6
- 回答日時:
反則なのは百も承知で、C++なら数行で書けます。
# '枝をたどれ'と答えてはみたものの、Cで実装するのは
# ひょいひょいとできることではないので...^^;
#include <iostream>
#include <set>
int main() {
typedef std::set<int> tree;
// 偶数で木を作る
for ( int i = 0; i < 10; i += 2) tree.insert(i);
// 5 の前後を見つける
std::set<int>::iterator lo = tree.lower_bound(5);
std::set<int>::iterator hi = lo; ++hi;
std::cout << "5 は " << *lo << "と" << *hi << "の間" << std::endl;
return 0;
}
--- 実行結果 ---
5 は 6と8の間
No.5
- 回答日時:
> その値は木の中には存在しません。
だからその値に近い値を探し出したい> のです。(その値に対して ’<’’>’の両方向で2つ)
木の中になくても同じことです。
検索の過程で辿った枝をスタックに保存し、
それをたどることでその前後が見つかります。
あるnodeに達した時点で存在しないことが明らかに
なったとき、そのnodeが持つ値はその値の両側の
どちらか一方であるはずです。他方はスタックを
逆に辿り、必要に応じてさらに枝をたどれば見つ
かります。
# O(logN)で見つけることを望んでいないなら、
# 深さ優先で列挙すれば小さい順に並ぶので
# それが最も簡単です。 時間計算量はO(N)ですが。
この回答への補足
何度もありがとうございます。
>O(logN)で見つけることを望んでいないなら
残念ながら望んでいるのです…
ニ分木を使おうとしたのはこのためです。
ソートすれば簡単なんですがね~
>検索の過程で辿った枝をスタックに保存し、
>それをたどることでその前後が見つかります。
その保存とその利用方法が難しいんですよ…
No.4
- 回答日時:
> ある瞬間に値を渡すとその値の両隣?の値が分かるようにしたいのです。
その値を持つnodeが木の中に存在するなら、その両側の値は木の構造より明らかではないでしょうか。
# ごめんなさい、質問の意図がさっぱりわからんのです。
この回答への補足
補足説明ありがとうございます。
私の説明不足というか、言葉たらずというか…
分かりにくくて申し訳ありません。
>その値を持つnodeが木の中に存在するなら、
>その両側の値は木の構造より明らかではないでしょうか。
その値は木の中には存在しません。だからその値に近い値を探し出したい
のです。(その値に対して ’<’’>’の両方向で2つ)
今回もわかりにくいですね。
どう書けば分かりやすくなるんだろ(笑
No.3
- 回答日時:
>>両者は'おなじもの'ではないかと
> 両者とは何を指しているのですか?
1. 挿入してその左右を見る
2. 普通の二分探索木ではだめなのでしょうか?
> ある瞬間に値を渡すとその値の両隣?の値が分かるようにしたいのです。
おっしゃることがわかりません。
'特定の値を持つnodeを二進木の中から探しだす'んじゃないんですか?
だったらアルゴリズムは'明らか'だと思いますが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- Java Java モンスターブリーダー 1 2023/02/05 09:44
- 食器・キッチン用品 小さい抜き型ってどこで買えますかorどうやって検索したらいいですか? 練り切り作りに挑戦したく思って 5 2023/04/13 20:45
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- ホテル・旅館 安いお宿を探したい 3 2023/07/12 20:53
- その他(スマホアプリ・スマホゲーム) 十七歳未満でも使用できる検索アプリを探しています。 4 2022/05/19 23:45
- 数学 特定の座標点を通る回帰を行う方法について。 2 2022/10/10 10:27
- 計算機科学 判定問題がPに属するなら探索問題はNPに属する。では判定問題がNPに属するとき探索問題は? 2 2023/05/20 19:10
- モニター・ディスプレイ Dell G2422HSのディスプレイの入力信号の切替器やリモコンを教えてください 4 2023/05/30 17:56
- その他(IT・Webサービス) ホンダ発電機EC550 オイルフィラーキャップの検索方法 1 2022/05/19 02:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語 exitの使い方
-
数字の位ごとの値を表示するプ...
-
Excel-vba 文字列と変数を...
-
VB6.0-整数と余りを求める
-
フォームを開くときに、コンボ...
-
フリーランタイマーの時間差分...
-
VBAで配列のNULL判定
-
Excel VBA でデータ転記について
-
データ構造のmapとは?
-
スピンボタンで小数点
-
Nullってどういう意味ですか?
-
UWSCのcallについて
-
c言語で乱数を扱うときの
-
C言語 乱数を階級分け
-
負の二進数
-
世界のナベアツ
-
VBAでダブルコーテーション入り...
-
VisualStudio2022でC言語プログ...
-
vbsでテキストファイル内の文字...
-
エラーの意味は? Lvalue req...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォームを開くときに、コンボ...
-
足して100になるような乱数のア...
-
Excel-vba 文字列と変数を...
-
C言語 exitの使い方
-
VB6.0-整数と余りを求める
-
VBAで配列のNULL判定
-
数字の位ごとの値を表示するプ...
-
VBAの定数の使い方で、計算値を...
-
フリーランタイマーの時間差分...
-
C#で動的にコントロールを取得...
-
10進数をアスキーコードに変換
-
コンボボックスの名前を変数に...
-
1つ前の値を変数に保存する方法
-
ラジオボタンの値の取得につい...
-
スピンボタンで小数点
-
相関係数p値の出し方
-
C言語でCLAMP(a,b,c)
-
DataGridView 複数行同時変更...
-
VBAのチェックボックス結果を集...
-
データ構造のmapとは?
おすすめ情報