Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでフロント、ミドル、バックからプッシュまたはポップできるキューを実装するプログラム


フロント、ミドル、バックで値をプッシュおよびポップできるキューを実装するように求められたとします。

3つのケースすべてに対して、プッシュとポップを行うための2つの関数を実装する必要があります。特定の時間にキュー全体を表示する別の関数を実装する必要があります。

したがって、入力が次のような場合

push_from_back(10)

push_from_back(20)

push_from_front(30)

push_from_middle(40)

push_from_front(50)

show_queue()

pop_from_back()

show_queue()

pop_from_front()

show_queue()

pop_from_middle()

show_queue()、

その場合、出力は[50、30、40、10、20

になります

[50、30、40、10]

[30、40、10]

[30、10]

これを解決するには、次の手順に従います-

  • array:=キューの配列表現

  • 関数push_from_front()を定義します。これには価値があります

    • 配列の0の位置に値を挿入します

  • 関数push_from_middle()を定義します。これには価値があります

    • 配列の位置(配列のサイズ)/ 2

      に値を挿入します
  • 関数push_from_back()を定義します。これには価値があります

    • 配列の最後に値を挿入

  • 関数pop_from_front()を定義します。

    • 空でない場合は、配列から最初の要素を削除して返します

  • 関数pop_from_middle()を定義します。

    • 位置(配列の長さ-1)/ 2

      の要素を削除して返します
  • 関数pop_from_back()を定義します。

    • 配列から最後の要素を削除して返します

  • 関数show_queue()を定義します。これは入力を取りません

    • 配列を返す

理解を深めるために、次の実装を見てみましょう

class Solution():

   def __init__(self):
      self.array = []

   def push_from_front(self, value):
      self.array.insert(0, value)

   def push_from_middle(self, value):
      self.array.insert(len(self.array) // 2, value)

   def push_from_back(self, value):
      self.array.append(value)

   def pop_from_front(self):
      return (self.array or [-1]).pop(0)

   def pop_from_middle(self):
      return (self.array or [-1]).pop((len(self.array) - 1) // 2)

   def pop_from_back(self):
      return (self.array or [-1]).pop()

   def show_queue(self):
      return self.array

ob = Solution()
ob.push_from_back(10)
ob.push_from_back(20)
ob.push_from_front(30)
ob.push_from_middle(40)
ob.push_from_front(50)
print(ob.show_queue())
ob.pop_from_back()
print(ob.show_queue())
ob.pop_from_front()
print(ob.show_queue())
ob.pop_from_middle()
print(ob.show_queue())

入力

ob = Solution()
ob.push_from_back(10)
ob.push_from_back(20)
ob.push_from_front(30)
ob.push_from_middle(40)
ob.push_from_front(50)
print(ob.show_queue())
ob.pop_from_back()
print(ob.show_queue())
ob.pop_from_front()
print(ob.show_queue())
ob.pop_from_middle()
print(ob.show_queue())

出力

[50, 30, 40, 10, 20]
[50, 30, 40, 10]
[30, 40, 10]
[30, 10]

  1. 配列内の最大の要素を見つけるPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −配列が与えられたので、配列の最大要素を計算する必要があります。 ここでは、ループ全体をトラバースして最大の要素を計算し、要素を取得するブルートフォースアプローチを使用します。 以下の実装を観察できます。 例 # largest function def largest(arr,n):    #maximum element    max = arr[0]    # traverse the whole loop    for

  2. 配列の合計を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力として配列が与えられた場合、与えられた配列の合計を計算する必要があります。 ここでは、ブルートフォースアプローチに従うことができます。つまり、リストをトラバースし、各要素を空の合計変数に追加します。最後に、合計の値を表示します。 以下で説明するように、組み込みの合計関数を使用して別のアプローチを実行することもできます。 例 # main arr = [1,2,3,4,5] ans = sum(arr,n) print ('Sum of the array is '