Giả sử, chúng tôi được yêu cầu triển khai một hàng đợi có thể đẩy và bật các giá trị ở phía trước, giữa và sau.
Chúng ta phải triển khai một cặp hàm để đẩy và bật cho cả ba trường hợp. Chúng tôi phải triển khai một hàm khác hiển thị đầy đủ hàng đợi tại một thời điểm nhất định.
Vì vậy, nếu đầu vào giống như
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 (),
thì đầu ra sẽ là [50, 30, 40, 10, 20
[50, 30, 40, 10]
[30, 40, 10]
[30, 10]
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
array:=biểu diễn mảng của hàng đợi
-
Xác định một hàm push_from_front (). Điều này sẽ có giá trị
-
chèn giá trị vào mảng ở vị trí 0
-
-
Định nghĩa một hàm push_from_middle (). Điều này sẽ có giá trị
-
chèn giá trị vào mảng tại vị trí (kích thước của mảng) / 2
-
-
Định nghĩa một hàm push_from_back (). Điều này sẽ có giá trị
-
chèn giá trị vào cuối mảng
-
-
Xác định một hàm pop_from_front ().
-
xóa và trả lại phần tử đầu tiên từ mảng nếu nó không trống
-
-
Xác định một hàm pop_from_middle ().
-
xóa và trả về phần tử tại vị trí (độ dài của mảng - 1) / 2
-
-
Xác định một hàm pop_from_back ().
-
xóa và trả lại phần tử cuối cùng từ mảng
-
-
Định nghĩa một hàm show_queue (). Điều này sẽ không cần đầu vào
-
trả về mảng
-
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn
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 hoặc [-1]). pop ( 0) def pop_from_middle (self):return (self.array hoặc [-1]). Pop ((len (self.array) - 1) // 2) def pop_from_back (self):return (self.array hoặc [- 1]). Pop () def show_queue (self):return self.arrayob =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 ())Đầu vào
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 ())Đầu ra
[50, 30, 40, 10, 20] [50, 30, 40, 10] [30, 40, 10] [30, 10]