ผลต่างระหว่างรุ่นของ "Ioi/recursion"
ไปยังการนำทาง
ไปยังการค้นหา
Jittat (คุย | มีส่วนร่วม) (→ท้าทาย) |
Jittat (คุย | มีส่วนร่วม) (→ท้าทาย) |
||
แถว 27: | แถว 27: | ||
== ท้าทาย == | == ท้าทาย == | ||
+ | 1. myrev | ||
+ | |||
+ | เขียนฟังก์ชัน myrev ที่รับรายการแล้วคืนรายการที่กลับหน้าหลัง | ||
+ | |||
+ | > (myrev '(1 3 4 5 6 7 8)) | ||
+ | '(8 7 6 5 4 3 1) | ||
+ | |||
+ | สามารถเขียนฟังก์ชันอื่นประกอบได้ เวลาในการทำงานของฟังก์ชันที่เขียนเป็นเท่าใด ถ้ารายการมีความยาว n | ||
== merge sort == | == merge sort == | ||
== ต้นไม้ == | == ต้นไม้ == |
รุ่นแก้ไขเมื่อ 22:08, 25 ตุลาคม 2558
หน้านี้รวมแบบฝึกหัดการเขียน recursion ด้วย Racket
เนื้อหา
ฝึกฝน
1. mypushback
เขียนฟังก์ชัน mypushback รับ list และ element แล้ว return list ที่มี element ต่อท้าย
> (mypushback '(1 2 3 4) 10) '(1 2 3 4 10)
ฟังก์ชันที่เขียนทำงานในเวลาเท่าใด ถ้าลิสต์ที่ได้รับมีความยาว n
2. mylast
เขียนฟังก์ชัน mylast รับ list และคืนข้อมูลสุดท้ายใน list ไม่ต้องพิจารณากรณีที่ได้รับ list ว่าง
> (mylast '(10 20 30)) 30
3. myappend
เขียนฟังก์ชันรับ list สอง list และคืน list ที่เกิดจากการต่อกันของทั้งสอง list
> (myappend '(1 2 3) '(20 30 40)) '(1 2 3 20 30 40)
ท้าทาย
1. myrev
เขียนฟังก์ชัน myrev ที่รับรายการแล้วคืนรายการที่กลับหน้าหลัง
> (myrev '(1 3 4 5 6 7 8)) '(8 7 6 5 4 3 1)
สามารถเขียนฟังก์ชันอื่นประกอบได้ เวลาในการทำงานของฟังก์ชันที่เขียนเป็นเท่าใด ถ้ารายการมีความยาว n