ใน Python deque เป็นโครงสร้างข้อมูลเช่นสแต็กและคิว อนุญาตให้ดำเนินการผนวกและป๊อปจากปลายทั้งสองของคิว และนั่นทำให้มันแตกต่างจากโครงสร้างข้อมูลที่เหลือ มีการดำเนินการต่าง ๆ ที่ระบุไว้ด้านล่างที่ใช้ได้กับ deque ในบทความนี้ เราจะมาดูตัวอย่างการดำเนินการแต่ละอย่าง คอลเลกชัน ใช้โมดูลเพื่อใช้ deque
ปฏิบัติการดีคิว
ด้านล่างนี้คือการดำเนินการที่มีประโยชน์โดยใช้ deque
-
ต่อท้าย() − ฟังก์ชันนี้ใช้เพื่อแทรกค่าในอาร์กิวเมนต์ที่ด้านขวาสุดของ deque
-
appendleft() − ฟังก์ชันนี้ใช้เพื่อแทรกค่าในอาร์กิวเมนต์ที่ด้านซ้ายสุดของ deque
-
ป๊อป() − ฟังก์ชันนี้ใช้เพื่อลบอาร์กิวเมนต์จากด้านขวาสุดของ deque
-
popleft( ) - ฟังก์ชันนี้ใช้เพื่อลบอาร์กิวเมนต์จากด้านซ้ายสุดของ deque
-
ขยาย (ทำซ้ำได้) − ฟังก์ชันนี้ใช้เพื่อเพิ่มค่าหลายค่าที่ด้านขวาสุดของ deque อาร์กิวเมนต์ที่ส่งผ่านเป็นแบบวนซ้ำได้
-
extendleft(ทำซ้ำได้) − ฟังก์ชันนี้ใช้เพื่อเพิ่มค่าหลายค่าที่ด้านซ้ายสุดของ deque อาร์กิวเมนต์ที่ผ่านไปเป็นแบบวนซ้ำได้ ลำดับถูกกลับรายการเนื่องจากการต่อท้ายด้านซ้าย
-
ย้อนกลับ() − ฟังก์ชันนี้ใช้เพื่อย้อนกลับลำดับขององค์ประกอบ deque
-
หมุน() − ฟังก์ชันนี้จะหมุน deque ตามจำนวนที่ระบุในอาร์กิวเมนต์ หากตัวเลขที่ระบุเป็นค่าลบ การหมุนจะเกิดขึ้นทางซ้าย หมุนอย่างอื่นไปทางขวา
ตัวอย่าง
โปรแกรมด้านล่างแสดงวิธีการดำเนินการข้างต้นโดยใช้ deque และโมดูลคอลเลกชัน
import collections de = collections.deque([10,20,30,40]) print(de) de.append(50) print ("\nAppending at right the deque is : ") print (de) de.appendleft(60) print ("\nAppending at left the deque is : ") print (de) de.pop() print ("\nDeleting from right the deque is: ") print (de) de.popleft() print ("\nDeleting from left the deque is: ") print (de) de.extend([70,80]) print ("\nExtending deque at end is : ") print (de) de.extendleft([100,90]) print ("\nExtending deque at beginning is : ") print (de) de.rotate(-2) print ("\nRotating deque is : ") print (de) de.reverse() print ("\nReversing deque is : ") print (de)
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
deque([10, 20, 30, 40]) Appending at right the deque is : deque([10, 20, 30, 40, 50]) Appending at left the deque is : deque([60, 10, 20, 30, 40, 50]) Deleting from right the deque is: deque([60, 10, 20, 30, 40]) Deleting from left the deque is: deque([10, 20, 30, 40]) Extending deque at end is : deque([10, 20, 30, 40, 70, 80]) Extending deque at beginning is : deque([90, 100, 10, 20, 30, 40, 70, 80]) Rotating deque is : deque([10, 20, 30, 40, 70, 80, 90, 100]) Reversing deque is : deque([100, 90, 80, 70, 40, 30, 20, 10])