อ่าน 1 นาที
ต้นไม้ชี้ผู้ปกครอง
ใน วิทยาการคอมพิวเตอร์ ต้นไม้ ชี้ไปยังโหนด แม่ หรือ ต้นไม้ชี้ไปยังโหนดแม่ เป็น โครงสร้างข้อมูลต้นไม้ N -ary ซึ่งแต่ละโหนดมี ตัวชี้ ไปยัง โหนดแม่ แต่ไม่มีตัวชี้ไปยัง โหนดลูก...
ต้นไม้ชี้ผู้ปกครอง

ในวิทยาการคอมพิวเตอร์ต้นไม้ชี้ไปยังโหนด แม่ หรือต้นไม้ชี้ไปยังโหนดแม่เป็นโครงสร้างข้อมูลต้นไม้N -ary ซึ่งแต่ละโหนดมีตัวชี้ไปยังโหนดแม่แต่ไม่มีตัวชี้ไปยังโหนดลูก เมื่อนำไปใช้ในการสร้าง สแต็กหลายชุดโครงสร้างนี้เรียกว่า สแต็กสปาเก็ตตี้ สแต็กกระบองเพชรหรือสแต็กซากัวโร (ตั้งชื่อตามซากัวโรซึ่งเป็นกระบองเพชรชนิดหนึ่ง) [ 1 ]ต้นไม้ชี้ไปยังโหนดแม่ยังใช้เป็นโครงสร้างข้อมูลเซตที่ไม่ทับซ้อนกัน อีก ด้วย
โครงสร้างนี้สามารถมองได้ว่าเป็นชุดของลิสต์เชื่อมโยงเดี่ยวที่ ใช้โครงสร้าง ร่วมกันบางส่วน โดยเฉพาะอย่างยิ่งส่วนปลายของลิสต์ จากโหนดใดๆ ก็ตาม เราสามารถเดินทางไปยังโหนดบรรพบุรุษของโหนดนั้นได้ แต่ไม่สามารถไปยังโหนดอื่นๆ ได้
ใช้ในคอมไพเลอร์
คอมไพเลอร์สำหรับภาษาอย่างเช่นภาษาซีจะสร้างสแต็กที่ซับซ้อน (spaghetti stack) ขณะที่มันเปิดและปิดตารางสัญลักษณ์ ที่แสดง ขอบเขตของบล็อกเมื่อเปิดขอบเขตบล็อกใหม่ ตารางสัญลักษณ์จะถูกผลักเข้าไปในสแต็ก เมื่อพบวงเล็บปีกกาปิด ขอบเขตนั้นจะถูกปิดและตารางสัญลักษณ์จะถูกดึงออกมา แต่ตารางสัญลักษณ์นั้นจะยังคงอยู่ ไม่ได้ถูกทำลาย และมันจะจดจำตารางสัญลักษณ์ระดับสูงกว่า "แม่" ของมันต่อไปเรื่อยๆ ดังนั้น เมื่อคอมไพเลอร์ทำการแปลโครงสร้างต้นไม้ไวยากรณ์นามธรรม (abstract syntax tree) ในภายหลัง สำหรับนิพจน์ใดๆ ก็ตาม มันสามารถดึงตารางสัญลักษณ์ที่แสดงสภาพแวดล้อมของนิพจน์นั้น และสามารถแก้ไขการอ้างอิงถึงตัวระบุได้ หากนิพจน์อ้างอิงถึงตัวแปร X มันจะถูกค้นหาในตารางสัญลักษณ์ใบที่แสดงขอบเขตคำศัพท์ภายในสุดก่อน จากนั้นในตารางสัญลักษณ์แม่ และต่อไปเรื่อยๆ
ใช้เป็นสแต็กการเรียก
คำว่า " สแต็กสปาเก็ตตี้"มีความเกี่ยวข้องอย่างใกล้ชิดกับการใช้งานภาษาโปรแกรมที่รองรับcontinuationsสแต็กสปาเก็ตตี้ถูกใช้เพื่อสร้างสแต็กขณะทำงาน จริง ซึ่งประกอบด้วยการผูกตัวแปรและคุณสมบัติอื่นๆ ของสภาพแวดล้อม เมื่อจำเป็นต้องรองรับ continuations ตัวแปรโลคอลของฟังก์ชันจะไม่ถูกทำลายเมื่อฟังก์ชันนั้นส่งค่ากลับ: continuation ที่บันทึกไว้อาจกลับเข้ามาในฟังก์ชันนั้นในภายหลัง และจะคาดหวังว่าไม่เพียงแต่ตัวแปรเหล่านั้นจะยังคงอยู่ แต่ยังคาดหวังว่าสแต็กทั้งหมดจะยังคงอยู่เพื่อให้ฟังก์ชันสามารถส่งค่ากลับได้อีกครั้ง เพื่อแก้ปัญหานี้เฟรมสแต็กสามารถจัดสรรแบบไดนามิกในโครงสร้างสแต็กสปาเก็ตตี้ และปล่อยทิ้งไว้ให้ระบบเก็บขยะจัดการ เมื่อไม่มี continuations อ้างอิงถึงอีกต่อไป โครงสร้างประเภทนี้ยังช่วยแก้ ปัญหา funargทั้งแบบขึ้นและลง ส่งผลให้ lexical closures ระดับเฟิร์สคลาส สามารถใช้งานได้อย่างง่ายดายในพื้นฐานนั้น
ตัวอย่างของภาษาที่ใช้โครงสร้างข้อมูลแบบสปาเก็ตตี้สแต็ก ได้แก่:
- ภาษาที่มีการสืบทอดขั้นที่หนึ่ง เช่นSchemeและStandard ML ของนิวเจอร์ซีย์
- ภาษาโปรแกรมที่สามารถตรวจสอบและแก้ไขสแต็กการประมวลผลได้ในขณะรันไทม์ เช่น
คอมพิวเตอร์เมนเฟรมที่ใช้สถาปัตยกรรมชุดคำสั่งของ Burroughs B6500 และรุ่นต่อมาซึ่งทำงานบน ระบบปฏิบัติการ MCPสามารถสร้างงานหลายงานภายในโปรแกรมเดียวกันได้ เนื่องจากระบบเหล่านี้เดิมที ใช้ภาษา ALGOLจึงต้องรองรับฟังก์ชันแบบซ้อนกันและผลที่ได้คือการสร้างงานจะทำให้เกิดการแยกสาขาในสแต็ก ซึ่งBurroughsเรียกอย่างไม่เป็นทางการว่า "สแต็กซากัวโร"
ดูเพิ่มเติม
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ต้นไม้ชี้ผู้ปกครอง
ใน วิทยาการคอมพิวเตอร์ ต้นไม้ ชี้ไปยังโหนด แม่ หรือ ต้นไม้ชี้ไปยังโหนดแม่ เป็น โครงสร้างข้อมูลต้นไม้ N -ary ซึ่งแต่ละโหนดมี ตัวชี้ ไปยัง โหนดแม่ แต่ไม่มีตัวชี้ไปยัง โหนดลูก...
ใช้ในคอมไพเลอร์
คอม ไพเลอร์ สำหรับภาษาอย่างเช่น ภาษาซี จะสร้างสแต็กที่ซับซ้อน (spaghetti stack) ขณะที่มันเปิดและปิด ตารางสัญลักษณ์ ที่แสดง ขอบเขต ของบล็อกเมื่อเปิดขอบเขตบล็อกใหม่ ตารางสัญลักษณ์จะถูกผลักเข้าไปในสแต็ก เมื่อพบวงเล็บปีกกาปิด...
ใช้เป็นสแต็กการเรียก
คำว่า " สแต็กสปาเก็ตตี้" มีความเกี่ยวข้องอย่างใกล้ชิดกับการใช้งาน ภาษาโปรแกรม ที่รองรับ continuations สแต็กสปาเก็ตตี้ถูกใช้เพื่อสร้าง สแต็กขณะทำงาน จริง ซึ่งประกอบด้วยการผูกตัวแปรและคุณสมบัติอื่นๆ ของสภาพแวดล้อม เมื่อจำเป็นต้องรองรับ continuations...
ดูเพิ่มเติม
โครงสร้างข้อมูลถาวร ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Parent_pointer_tree&oldid=1304313250 "