ดังที่แสดงด้านล่าง:
นำเข้า java.util.Arrays; // รหัสของกองเล็ก ๆ บนฮีปใช้ฮีประดับสาธารณะ {// ปรับลดลงค่าสูงสุดที่ด้านบนจะลดลงซึ่งส่วนใหญ่ใช้เพื่อลบและสร้างฮีป ฉันหมายถึงดัชนีโหนดที่จะปรับ, n หมายถึงดัชนีองค์ประกอบมากที่สุดของ heap.// เมื่อการลบฉันคือ 0. เมื่อสร้างกองฉันปรับไปข้างหน้าจากโหนดแม่ของโหนดสุดท้ายโมฆะสาธารณะคงที่ fixdown (int [] int i, in n) {int num = data [i]; ข้อมูล [SON]) SON ++; ถ้า (num <data [son]) break; data [i] = data [son]; i = son; son = i * 2+1;} data [i] = num;} // ปรับตัวสูงขึ้นไป - 1)/ 2; // data [พ่อ]> num เป็นเงื่อนไขพื้นฐานสำหรับการเข้าสู่ลูป หากพ่อลดลงเป็น 0 มันจะไม่ลดลง // เมื่อ n เท่ากับ 0 พ่อ = 0; เข้าสู่การวนซ้ำที่ตายแล้วดังนั้นเมื่อ n == 0 คุณต้องกระโดดออกจากลูปในขณะที่ (ข้อมูล [พ่อ]> num && n! = 0) {data [n] = ข้อมูล [พ่อ]; n = พ่อ; พ่อ = (n - 1)/ 2;} ข้อมูล [n] = num; ข้อมูล [n]; data [n] = -1; fixdown (ข้อมูล, 0, n - 1);} // เพิ่มขึ้นฉันแสดงจำนวนที่จะเพิ่ม, n หมายถึงดัชนีของตำแหน่งที่จะเพิ่มมันเป็นองค์ประกอบสุดท้ายของการแทรกโมฆะคงที่ของกอง {num; ฮีปโมฆะคงที่สาธารณะ creat (int [] ข้อมูล, int n) {สำหรับ (int i = (n -1)/ 2; i> = 0; i -) fixdown (ข้อมูล, i, n);} โมฆะคงที่สาธารณะหลัก (สตริง [] args) {int [] data = {15, 13, 1, 5, 20, 8, 8, 8, 9, 9 1); System.out.println (array.toString (data)); // ทดสอบลบ (data, data.length - 1); ลบ (data, data.length - 2); system.out.println (array.toString (data));บทความข้างต้นเกี่ยวกับการดำเนินการกอง Java (อาคารกองการแทรกการลบ) เป็นเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น