2012-01-17 4 views
1

私はプログラミングに慣れていないので、この質問が簡単な場合は私の謝罪を受け入れてください。スタック内で最も多くの出会いが見つかりました

先生は最も頻繁に発生し、例えば

それを返す名前のスタックを検索する方法を作成するために私たちを望んでいる:

タイガー・ウッズ、ジャック:私は私のスタック内のこれらの名前を持っている場合ニコラス、アーノルド・パーマー、ジャック・ニコラス、ジミーDemerrit、ジャック・ニコラス、サム・スニード、ジミーDemerrit、ベン・ホーガン、ウォルター・ヘーゲン、トミー・アーマー、ボビー・ジョーンズ

方法は、ジャック・ニコラス

を返す必要があり、私のために私を助けてくださいねdが

は、事前にあなたに感謝私のプログラムのためにそれを行う方法を知って

+3

これまでに何を書いていますか?あなたはこの問題をどのように解決するか考えていますか?私があなたに紙の名前のリストを渡したら、最も頻繁に起こる名前をどうやって見つけますか? –

+0

彼は特に_stack_を望んでいますか、または_list_に満足していますか? 2つは相互排他的ではありませんが、意味的には、スタックではなく、リストのようにこれを(そしてそれを使って)見ているでしょう。 –

+0

最も出現している要素がn/2回以上出現している場合、これはスタックを使用して(リストなしで) 'O(n) 'で行うことができます – st0le

答えて

2

あなたのプログラムは、次のことを行う必要があります:

  1. 作成または名前のリストを取得し、それらにそれらを追加しますすべてスタックに。
  2. スタック内の各項目を繰り返し、遭遇した回数を記録します(頻度カウントと呼ばれます)。
  3. 頻度が最も高い名前を特定し、その値を返します。

これらの手順をそれぞれ実装し、問題があれば修正してください。

0

これを簡単に解決する方法は、メアリックスが言ったことをすることです。しかし、もう少し具体的にするには、キーとして文字列(名前)を使用し、値としてint(頻度)を使用してHashMapを作成します。次に、スタック内の各名前を調べてHashMapに追加し、その名前の頻度を1つ増やします。名前がすでにHashMapにある場合は、その頻度を増やします。完了したら、最も高い頻度の名前が取得したい名前になります。

+0

プログラミングには新しく、いくつかの例を表示できますか? – skoon

+0

ここにいくつかの擬似コードです。スタック内の各名前のため 、 場合、名前はないハッシュマップで、 1 [リンク](http://docs.oracle.com/javase/1.5によって1の値、 他増加周波数にハッシュマップに名前を追加。 0/docs/api/java/util/HashMap.html) – theDazzler

関連する問題