ประเภทหน่วยเก็บข้อมูลทั้งหมดเกี่ยวข้องกับการจัดเก็บบางอย่างในจุดเดียวและเรียกคืนในภายหลัง ในการดำเนินการนี้ในการดำเนินการเพียงครั้งเดียวคุณควรทำการจัดเก็บหรือดึงข้อมูลโดยอัตโนมัติและระบุตำแหน่งของค่าที่เก็บไว้ในการดำเนินการอื่น
นั่นคือสำหรับหน่วยเก็บข้อมูลที่ชัดเจนคุณสามารถสร้างโอเปอเรเตอร์เพื่อดึงค่าที่คำนวณได้ที่ n ก่อนการดำเนินการนี้หรือนำค่าปัจจุบันกลับมาหลังจากการดำเนินการ n หรือคุณสามารถใช้ตำแหน่งสัมบูรณ์จากจุดเริ่มต้นของโปรแกรมหรือทำสิ่งต่าง ๆ เช่นลบองค์ประกอบบางอย่างโดยอัตโนมัติหลังจากการดำเนินการบางอย่าง (เช่นในกองซ้อน) คุณยังสามารถสร้างโอเปอเรเตอร์หลายตัวได้โดยดึงข้อมูลจากหน่วยเก็บข้อมูลที่ต่างกันโดยมีหรือไม่มีการดำเนินการอัตโนมัติเหล่านี้ และคุณควรพยายามทำให้จำนวนสูงสุดที่จำเป็นในการระบุในการดำเนินการเล็กพอสมควรดังนั้นคุณสามารถกำหนดผู้ให้บริการหนึ่งรายสำหรับแต่ละหมายเลข
แต่ในกรณีส่วนใหญ่คุณไม่จำเป็นต้องมีโอเปอเรเตอร์และภาษาจะทำสิ่งนี้โดยปริยาย นั่นคือเมื่อคุณจำเป็นต้องพิจารณารูปแบบที่เป็นมาตรฐานมากขึ้นเช่นสแต็คหรือคิว ที่ประสบความสำเร็จมากที่สุดในตอนนี้ดูเหมือนจะเป็นการเขียนโปรแกรมโดยปริยายซึ่งไม่ได้กล่าวถึงการจัดเก็บโดยตรง
หากคุณต้องการออกแบบโมเดลดังกล่าวใหม่คุณสามารถลองขยายการประเมินเป็น dag และลองคิดถึง dag เริ่มต้นหากไม่มีการระบุสิ่งใดไว้ เป็นไปได้มากว่าค่าเริ่มต้นเป็นเพียงต้นไม้ยกเว้นว่าหลายใบอาจเชื่อมโยงกับอินพุตเดียวกัน ตัวอย่างเช่นคุณสามารถใช้คิวสำหรับต้นไม้ที่มีความสมดุลหรือสแต็คสำหรับต้นไม้ลึกที่ใบส่วนใหญ่จะคงที่หรือสิ่งที่ต้องการเจลลี่สำหรับต้นไม้ลึกที่ใบส่วนใหญ่เป็นสำเนาของอินพุต
แต่โปรดทราบว่าคุณสามารถเข้ารหัสรูปร่างของต้นไม้ไบนารีได้เพียง 2 บิตต่อตัวดำเนินการ ดังนั้นหากภาษาของคุณมีโอเปอเรเตอร์น้อยกว่า 64 คุณอาจเพิกเฉยต่อโมเดลดั้งเดิมและเข้ารหัสต้นไม้ที่สมบูรณ์ในบิตสำรอง (เรียกว่าแฟลกรวม _parent และ Below_leaf) แม้ว่าจะมีโอเปอเรเตอร์เพิ่มขึ้น แต่คุณสามารถตั้งค่าเริ่มต้นได้ค่อนข้างดี (เช่นรุ่นของ Jelly) และ 3 โมเดอเรเตอร์เพื่อเปลี่ยน
คุณสามารถใช้รูปแบบเดียวกันสำหรับการจัดเก็บโดยนัยและชัดเจนเพื่อความสะดวก แต่คุณไม่จำเป็นต้อง ตัวอย่างเช่นคุณสามารถใช้สแต็กสำหรับที่เก็บข้อมูลโดยนัย แต่ไม่ต้องมีองค์ประกอบของป๊อปในที่เก็บข้อมูลอย่างชัดเจน (หรือในที่เก็บข้อมูลอื่นที่ชัดเจนนอกเหนือไปจากที่เก็บข้อมูลโดยนัย) เป็นไปได้ว่ามันจะไม่ถูกเรียกว่าสแต็กในเอกสารประกอบขั้นสุดท้าย แต่คุณจะได้รับแนวคิด
สำหรับการอ้างอิงขนาดของการเข้ารหัสที่สมบูรณ์แบบของต้นไม้ไบนารีคือลอการิทึมของจำนวนคาตาลัน และขนาดของการเข้ารหัสที่สมบูรณ์แบบของเศษ "ไบนารี" คือลอการิทึมของA082161แต่ทำไม่ได้อย่างเห็นได้ชัด สิ่งนี้จะถือว่าโอเปอเรเตอร์ที่มีอาร์กิวเมนต์ต่างกันสั่งโอเปอเรเตอร์ที่แตกต่างกันสองตัวเพิ่มบิตอื่นเมื่อไม่ใช่
บางครั้งคุณอาจต้องการตัวแปรสำหรับลูป อาจเป็นไปได้ที่จะเขียนลูปด้วยวิธีอื่น แต่ถ้าคุณต้องการจริงๆอย่าใช้โครงสร้าง 1 ไบต์นอกเหนือจากชื่อเพื่อกำหนดตัวแปร เว้นแต่คุณจะใช้เฉพาะค่าเริ่มต้นเท่านั้นมักจะมีประสิทธิภาพมากกว่าในการใช้แฟล็ก 1 บิตเพื่อระบุว่าคุณกำลังอ่านหรือเขียนตัวแปรนี้