มันไม่ยาก
ด้วยรายการที่ลิงก์ทวีคูณเมื่อคุณแทรกคุณจะจัดสรรหน่วยความจำแล้วคุณจะทำการเชื่อมโยงกับส่วนหัวหรือโหนดก่อนหน้าและกับส่วนท้ายหรือโหนดถัดไป เมื่อคุณลบคุณจะยกเลิกการเชื่อมโยงจากที่เดิมและเพิ่มหน่วยความจำ การดำเนินการทั้งหมดนี้มีความสมมาตร
ซึ่งถือว่าในทั้งสองกรณีคุณมีโหนดที่จะแทรก / ลบ (และในกรณีของการแทรกว่าคุณยังมีโหนดที่จะแทรกก่อนดังนั้นในบางวิธีการแทรกอาจคิดว่าซับซ้อนกว่าเล็กน้อย) หากคุณพยายามลบโดยไม่มีโหนดที่จะลบ แต่payloadแน่นอนว่าคุณต้องค้นหารายการของ payload ก่อน แต่นั่นไม่ใช่ข้อบกพร่องของการลบใช่ไหม?
สำหรับต้นไม้ที่มีความสมดุลจะมีผลเช่นเดียวกัน: โดยทั่วไปแล้วต้นไม้ต้องการความสมดุลทันทีหลังจากการแทรกและหลังจากการลบ มันเป็นความคิดที่ดีที่จะลองและมีเพียงหนึ่งสมดุลประจำและใช้มันหลังจากการดำเนินการแต่ละครั้งไม่ว่าจะเป็นการแทรกหรือลบ หากคุณกำลังพยายามที่จะแทรกสิ่งที่ทำให้ต้นไม้มีความสมดุลอยู่เสมอและการลบซึ่งทำให้ต้นไม้นั้นมีความสมดุลเสมอโดยไม่ต้องให้ทั้งสองมีส่วนร่วมในการปรับสมดุลที่เหมือนกัน
ในระยะสั้นไม่มีเหตุผลว่าทำไมคนเราควรจะหนักกว่าคนอื่นและถ้าคุณพบว่ามันเป็นจริงแล้วมันอาจเป็นไปได้ว่าคุณเป็นเหยื่อของแนวโน้ม (มนุษย์มาก) ที่คิดว่ามันเป็นธรรมชาติมากกว่าที่จะคิด เชิงสร้างสรรค์มากกว่าการลบหมายความว่าคุณอาจทำการลบในลักษณะที่ซับซ้อนกว่าที่จำเป็น แต่นั่นเป็นปัญหาของมนุษย์ จากมุมมองทางคณิตศาสตร์ไม่มีปัญหา
pop
,extract-min
?