คำถามติดแท็ก recursion

คำถามเกี่ยวกับวัตถุเช่นฟังก์ชันอัลกอริทึมหรือโครงสร้างข้อมูลที่แสดงออกโดยใช้อินสแตนซ์ "เล็กกว่า" ของตัวเอง

2
วิธีการรับตัวกำจัดที่พิมพ์ได้อย่างพึ่งพา?
ในการโปรแกรมแบบพิมพ์อย่างพึ่งพามีสองวิธีหลักในการย่อยสลายข้อมูลและดำเนินการเรียกซ้ำ: การจับคู่รูปแบบขึ้นอยู่กับ : คำจำกัดความของฟังก์ชั่นจะได้รับเป็นคำสั่งหลาย ๆ การรวมทำให้แน่ใจว่าทุกกรณีที่ถูกละเว้นนั้นเป็นไปไม่ได้และตัวแก้ไขภายนอกช่วยให้มั่นใจว่าการเรียกซ้ำนั้นได้รับการพิสูจน์แล้ว กำจัด : ประเภทข้อมูลอุปนัยแต่ละมีค่าคงที่เกี่ยวข้องE Dซึ่งทำหน้าที่เป็นหลักการเหนี่ยวนำและเป็นฟังก์ชันเวียนที่สลายตัวค่าประเภทD สิ่งเหล่านี้มีความละเอียดมากกว่า แต่มีความได้เปรียบในการรวม (ทุกกรณีถูกปกคลุมด้วยE D ) และยกเลิกโดยการก่อสร้างDDDEDEDE_DDDDEDEDE_D ผมเคยเห็นกำจัดสำหรับประเภทข้อมูลทั่วไปเช่นที่กำจัดเป็นพื้นอุปนัยทางคณิตศาสตร์หรือL ฉันs Tที่กำจัดเป็นพื้นพับยังไม่มีข้อความทียังไม่มีข้อความaเสื้อNatL ฉันs TLผมsเสื้อList ฉันได้อ่านเอกสารหลายฉบับเกี่ยวกับการจับคู่รูปแบบขึ้นอยู่กับและหลายคนอ้างถึงทฤษฎีประเภทที่สามารถกำหนดประเภทข้อมูลและทฤษฎีกำจัด ยกตัวอย่างเช่นการขจัดรูปแบบการจับคู่ขึ้นอยู่กับอธิบายวิธี UTT จะขึ้นอยู่กับเครื่องกำจัดและวิธีการจับคู่รูปแบบสามารถแปลงไปกำจัดในการปรากฏตัวของความจริงKความเข้าใจของฉันคือว่าเมื่อมีการกำหนดประเภทข้อมูลทฤษฎีให้ตัวกำจัดKKK สิ่งที่ฉันไม่พบ (หรืออย่างน้อยไม่รู้จักถ้าฉันเห็นมัน) เป็นคำอธิบายที่ดีว่าใครจะได้รับผู้กำจัดทั้งประเภทและความหมายของพวกเขา ใครบางคนสามารถชี้ให้ฉันอ้างอิงถึงวิธีการที่จะได้รับตัวกำจัดจากคำจำกัดความของประเภทข้อมูลหรือไม่?

3
อัลกอริทึมเพื่อทดสอบว่าต้นไม้ไบนารีเป็นต้นไม้ค้นหาและนับสาขาเสร็จสมบูรณ์หรือไม่
ฉันต้องสร้างอัลกอริทึมแบบเรียกซ้ำเพื่อดูว่าต้นไม้ไบนารีเป็นต้นไม้ค้นหาแบบไบนารีรวมทั้งนับจำนวนสาขาที่สมบูรณ์ (โหนดแม่ที่มีโหนดลูกทั้งซ้ายและขวา) พร้อมตัวแปรการนับทั่วโลก นี่คือการมอบหมายสำหรับคลาสโครงสร้างข้อมูลของฉัน จนถึงตอนนี้ฉันมี void BST(tree T) { if (T == null) return if ( T.left and T.right) { if (T.left.data < T.data or T.right.data > T.data) { count = count + 1 BST(T.left) BST(T.right) } } } แต่ฉันไม่สามารถหาอันนี้ได้ ฉันรู้ว่าอัลกอริทึมนี้จะไม่แก้ปัญหาเพราะการนับจะเป็นศูนย์ถ้าที่สองถ้าคำสั่งไม่เป็นความจริง ใครช่วยฉันออกจากนี้
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.