2次元凸包の分割統治法での求め方について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ペキロゲン

2次元凸包の分割統治法での求め方について

#1

投稿記事 by ペキロゲン » 14年前

学校の課題にて分割統治法を用いて凸包を求めよという問題を出されました。ちなみに用いる言語はC言語です。
凸包の求め方自体は分かったのですが、肝心の分割して統合していくまでの過程が分からず悩んでいます。
例えば既にソート済みの座標配列pがあったとして、マージソートの時と同様に再帰を用いてpを二分割していき、
そして細かく分割された座標配列ごとに凸包での座標を求め、そして統合していくかと思います。
問題はその統合の仕方で、マージソートの時はもとある配列の順番を入れ替えながら統合していきましたが、
今回は凸包に用いなかった要素はどんどん削除していき、必要な要素だけを集め統合していくかと思います。
しかしその統合の仕方が見当がつかず、どこでどのように凸包に必要な要素だけを含む配列に格納していけば分かりません。
問題が抽象的で分かりにくいかと思いますが、どなたか知恵をお貸しいただけたら幸いです。

non
記事: 1097
登録日時: 15年前

Re: 2次元凸包の分割統治法での求め方について

#2

投稿記事 by non » 14年前

私は作ったことがないので、良いアドバイスできませんが、
どのようなデータ構造に凸包線上の点を持たせればよいかという点につきますね。
先生からは全くのノーヒントなのでしょうか?
もし、ノーヒントで私に作れと言うのでしたら、循環リスト構造にしますね。
両方向がいいかなぁ。
non

ペキロゲン

Re: 2次元凸包の分割統治法での求め方について

#3

投稿記事 by ペキロゲン » 14年前

回答ありがとうございます!
確かに途中で要素の削除がある場合配列よりリストの方が楽ですね
C言語でもC++みたいにlistが使い安かったら便利なのですが・・・

閉鎖

“C言語何でも質問掲示板” へ戻る