ผลต่างระหว่างรุ่นของ "แถวคอยสองหน้า"

เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
Octahedron80 (คุย | ส่วนร่วม)
คิวสองหน้า ถูกเปลี่ยนชื่อเป็น แถวคอยสองหน้า
Octahedron80 (คุย | ส่วนร่วม)
ไม่มีความย่อการแก้ไข
บรรทัด 1:
{{กล่องข้อมูล ประเภทข้อมูลอย่างย่อ
| ชื่อ = คิวแถวคอยสองหน้า
| ภาพ =
| description =
บรรทัด 9:
| children =
}}
'''คิวแถวคอยสองหน้า''' ({{Lang-en|Double-Ended Queue: Deque}}) เป็น[[ประเภทข้อมูลอย่างย่อ]]ที่เราสามารถนำข้อมูลแรกสุดหรือหลังสุดที่เราเพิ่มเข้าหรือออกก็ได้ เปรีบเปรียบเสมือนเป็น[[คิว (โครงสร้างข้อมูล)|คิวแถวคอย]]ที่มีหัวเปิดสองด้านให้เข้า-ออกได้ นั้นเอง
 
คิวแถวคอยสองหน้า สามารถประยุกต์ใช้ในแนวคิด กึ่ง[[คิว (โครงสร้างข้อมูล)|คิวแถวคอย]]กึ่ง[[กองซ้อน]]ได้ ทำให้จัดการกับการเข้า-ออกของข้อมูลได้ทุกรูปแบบ
 
== จุดเด่นของคิวสองหน้า ==
คิวแถวคอยสองหน้า สามารถรวมแนวคิดของ[[คิว (โครงสร้างข้อมูล)|คิวแถวคอย]]และ[[กองซ้อน]]ได้ดังนี้
{| class="wikitable" border=1 align=center
!บริการของ'''คิวแถวคอยสองหน้า'''!!บริการของ[[คิว (โครงสร้างข้อมูล)|คิวแถวคอย]]!!บริการของ[[กองซ้อน]]
|-
| headenqueue ||enqueue||push
เส้น 27 ⟶ 28:
 
== บริการที่มักจะมี ==
* เอาข้อมูลใหม่เข้าในหัวคิวแถว (headenqueue)
* เอาข้อมูลออกจากหัวคิว แถว (headdequeue)
* เอาข้อมูลใหม่เข้าในท้ายคิวแถว (headenqueuetailenqueue)
* เอาข้อมูลออกจากท้ายคิว แถว (headdequeuetaildequeue)
* ดูข้อมูลที่อยู่หัวคิวแถว (peek)
 
== ความเร็วที่ใช้ในการทำงาน ==
การทำงานยังคงเป็นการจัดการการข้อมูลเข้า-ออกเหมือน[[คิว (โครงสร้างข้อมูล)|คิวแถวคอย]] และ [[กองซ้อน]] จึงใช้เวลาคงที่ ([[สัญกรณ์โอใหญ่|O (1)]])
 
== วิธีการสร้างคิวสองหน้า ==
คิวแถวคอยสองหน้าดัดแปลงมาจาก[[คิว|คิวแถวคอยธรรมดา]] โดยสำหรับ[[คิว#วิธีการสร้างคิว#คิวแถวลำดับ|คิวคอยแถวลำดับ]] เพียงแต่การจัดการดัชนีทั้งที่ชี้ตัวแรกและตัวสุดท้ายให้เพิ่มได้ทั้งสองฝั่ง ส่วน[[คิว#วิธีการสร้างคิว#คิวแถวคอยรายการโยงสองชั้นวน|คิวรายการโยงสองชั้นวน]] ก็ทำได้โดยการอนุญาตให้เพิ่มทั้งก่อนและหลังปมหัว
 
== ดูเพิ่ม ==
* [[แถวคอย]]
* [[คิว (โครงสร้างข้อมูล)|คิว]]
* [[กองซ้อน]]
* [[คิวแถวคอยลำดับความสำคัญ]]
 
 
 
[[หมวดหมู่:ประเภทข้อมูลอย่างย่อ]]
[[หมวดหมู่:โครงสร้างข้อมูลที่เป็นคิว]]
{{โครงสร้างข้อมูล}}