Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมที่จะใช้คิวที่สามารถพุชหรือป๊อปจากด้านหน้า ตรงกลาง และด้านหลังใน Python


สมมติว่า เราถูกขอให้ใช้คิวที่สามารถผลักและแสดงค่าที่ด้านหน้า ตรงกลาง และด้านหลัง

เราต้องใช้คู่ของฟังก์ชันเพื่อ push และ pop สำหรับทั้งสามกรณี เราต้องใช้ฟังก์ชันอื่นที่แสดงคิวเต็มในเวลาที่กำหนด

ดังนั้นหากอินพุตเป็นแบบ

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() การดำเนินการนี้จะไม่มีการป้อนข้อมูล

    • กลับอาร์เรย์

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น

คลาส 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 หรือ [-1]).pop( 0) def pop_from_middle(self):return (self.array หรือ [-1]).pop((len(self.array) - 1) // 2) def pop_from_back(self):return (self.array หรือ [-) 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()) 

อินพุต

ob =โซลูชัน()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]