บทความนี้อธิบายวิธีการใช้งานอาร์เรย์ของคิวลูปแบบสองทิศทางของโครงสร้างข้อมูล Java และอัลกอริทึม แบ่งปันสำหรับการอ้างอิงของคุณดังนี้:
ควรสังเกตว่าฉันยังไม่ได้ทดสอบอัลกอริทึมนี้ แนวคิดอัลกอริทึมที่ให้ไว้ที่นี่เทียบเท่ากับรหัสหลอกดังนั้นจึงสามารถใช้เป็นข้อมูลอ้างอิงเท่านั้น!
แหล่งแพ็คเกจ; คลาสสาธารณะ deque {ส่วนตัว int maxsize; INT ส่วนตัวซ้าย; สิทธิส่วนตัว INT; NITEMS INT ส่วนตัว; ส่วนตัวยาว [] mydequ; // constructor public deque (int maxsize) {this.maxsize = maxSize; this.mydequ = ใหม่ยาว [this.maxsize]; this.nitems = 0; this.left = this.maxsize; this.right = -1; } // แทรกตัวเลขลงในโมฆะสาธารณะด้านซ้ายช่องว่าง (ยาว n) {ถ้า (this.left == 0) this.left = this.maxSize; this.mydequ [-this.left] = n; this.nitems ++; } // แทรกตัวเลขลงในโมฆะสาธารณะด้านขวาเป็นโมฆะ InserTright (ยาว n) {ถ้า (this.right == this.maxSize -1) this.right = -1; this.mydequ [++ this.right] = n; this.nitems ++; } // ลบออกจาก public Long Long Long Long () {Long Temp = this.mydequ [this.left ++]; if (this.left == this.maxsize) this.left = 0; this.nitems-; กลับอุณหภูมิ; } // ลบออกจากการลบล้างความยาวสาธารณะที่ถูกต้อง () {Long temp = this.mydequ [this.right--]; if (this.left ==-1) this.left = this.maxSize-1; this.nitems-; กลับอุณหภูมิ; } // return true ถ้า deque เป็นบูลีนสาธารณะที่ว่างเปล่า isempty () {return (this.nitems == 0); } // ขนาดคืนของขนาด int deque () {return this.nitems; -PS: คิวลูปแบบสองทิศทางมีประโยชน์อย่างมาก พวกเขาสามารถใช้เป็นคิวธรรมดาหรือเป็นสแต็ค!
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอัลกอริทึม Java ผู้อ่านที่มีความสนใจในเว็บไซต์นี้สามารถดูหัวข้อ: "โครงสร้างข้อมูล Java และการสอนอัลกอริทึม", "บทสรุปของเคล็ดลับการดำเนินงาน Java Dom", "บทสรุปของไฟล์ Java และเคล็ดลับการดำเนินการไดเรกทอรี" และ "สรุป
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคน