1 / 87

Thai Scrabble

Thai Scrabble. โดย นายนฤพนธ์ เจริญพืช รหัส 44032443 วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา. 30 / 03 / 05 วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 1. หัวข้อนำเสนอ. รายละเอียดโครงงาน วัตถุประสงค์ของโครงงาน ขอบเขตของโครงงาน การดำเนินงาน ผลการดำเนินงาน

nerice
Download Presentation

Thai Scrabble

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Thai Scrabble โดย นายนฤพนธ์ เจริญพืช รหัส 44032443 วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 1

  2. หัวข้อนำเสนอ • รายละเอียดโครงงาน • วัตถุประสงค์ของโครงงาน • ขอบเขตของโครงงาน • การดำเนินงาน • ผลการดำเนินงาน • สรุปผลการดำเนินงาน 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 2

  3. รายละเอียดโครงงาน Scrabble หรือ เกมส์ต่อคำศัพท์เป็นการที่ให้ผู้เล่นนั้นต่อคำศัพท์จากตัวอักษรที่ตนเองมีอยู่ ลงบนกระดานและนับคะแนน โดยส่วนใหญ่จะมีผู้เล่นประมาณ 2-4 คน แต่สำหรับ Thai Scrabble นี้ เป็นเกมส์ต่อคำศัพท์ที่เป็นการโต้ตอบกันระหว่างผู้เล่น 2 ฝ่าย คือ ผู้เล่นที่เป็นมนุษย์ และผู้เล่นที่เป็นคอมพิวเตอร์ โดยคอมพิวเตอร์นั้นจะต้องสามารถคำนวณหาคำศัพท์ที่สามารจะต่อได้ และพิจารณาคำศัพท์ที่เหมาะสมที่สุดที่จะต่อ โดยใช้ทฤษฎีต่างๆ มาช่วยในการพิจารณา ดังเช่น Monte Carlo, Minimax Searching, Heuristic 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 3

  4. วัตถุประสงค์ของโครงงานวัตถุประสงค์ของโครงงาน 1.เพื่อสร้างพื้นฐานและความเข้าใจทางด้านปัญญาประดิษฐ์ 2.เพื่อศึกษาทฤษฎีและการทำงานของ Heuristic และ Minimax Searching ซึ่งเป็นส่วนหนึ่งของปัญญาประดิษฐ์ 3. นำความรู้ที่ได้ไปพัฒนาและศึกษาต่อในงานทางด้านปัญญา ประดิษฐ์ 4. เพื่อทำให้คอมพิวเตอร์สามารถคิดคำศัพท์เพื่อโต้ตอบกับผู้เล่นได้ 5. เพื่อสร้างเกมส์ที่เป็นประโยชน์และสร้างความสนุกสนาน 6. เพื่อส่งเสริมและฝึกการใช้คำภาษาไทย 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 4

  5. ขอบเขตของโครงงาน 1. คอมพิวเตอร์สามารถคำนวณหาคำศัพท์ที่จะต่อได้ตามรูปแบบ ของเกมส์ 2. พจนานุกรมที่ใช้เป็นฐานข้อมูลจากโปรแกรม Lexitron ซึ่งเป็น โปรแกรมแปลคำศัพท์ไทย-อังกฤษและอังกฤษ-ไทยดังนั้นคำ บางคำอาจจะไม่ตรงกับพจนานุกรมที่ใช้กันทั่วไปแต่สามารถ พัฒนาให้อ้างอิงจากพจนานุกรมต่างๆที่ต้องการได้ 3. ภาพกราฟิกเป็นแบบ 2 มิติ 4. โปรแกรมที่พัฒนาขึ้นนี้เป็นการพัฒนาเพื่อเน้นในด้านปัญญา ประดิษฐ์ เพื่อให้คอมพิวเตอร์สามารถคิดคำศัพท์โต้ตอบกับมนุษย์ 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 5

  6. การดำเนินงาน โปรแกรมจะแบ่งออกเป็น 2 ส่วนคือ 1.พจนานุกรม 2.ตัวเกมส์ โดยในส่วนของพจนานุกรมจะจัดการเกี่ยวกับคำศัพท์เช่นการค้นหาคำศัพท์จากตัวอักษรที่กำหนดหรือใช้ในการค้นหาคำศัพท์ว่ามีอยู่ในพจนานุกรมหรือไม่โดยในส่วนของพจนานุกรมนี้ได้เลือกใช้ Ternary Search Trees ในการจัดการเนื่องจากมีการทำงานที่รวดเร็วและสามารถค้นหาคำศัพท์โดยมีอินพุทเป็นตัวอักษรที่อยู่ในคำนั้นบางตัวได้และในส่วนของฐานข้อมูลทางผู้พัฒนาเลือกใช้ฐานข้อมูล Lexitron ของทางศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติหรือเนคเทคในการพัฒนา 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 6

  7. การดำเนินงาน(ต่อ) Ternary Search Trees • คือการรวมคุณสมบัติของ binary search trees และ digital search tries โดยจะดำเนินการกับตัวอักษรไปทีละตัว ซึ่งเป็นลักษณะของ tries และใช้พื้นที่อย่างมีประสิทธิภาพอย่างเช่น binary search tree โดยแต่ละโหนดจะมีลูกทั้งหมด 3 ตัว ซึ่งจะดีกว่า binary search tree ที่มีแค่ 2 ตัว • -lokid หมายถึงโหนดลูกทางซ้าย • - eqkid หมายถึงโหนดลูกตรงกลาง • - hikid หมายถึงโหนดลูกทางขวา • โดยเมื่อเปรียบเทียบกับค่าของโหนดปัจจุบันแล้วมีค่าน้อยกว่าจะเลื่อนโหนดลงไปยังโหนดลูกทางซ้าย (lokid) ถ้ามากกว่าจะเลื่อนโหนดลงไปยังโหนดลูกทางขวา (hiked) แต่ถ้าเท่ากันจะเลื่อนลงไปยังโหนดตรงกลาง (eqkid) และจะเป็นการเปรียบเทียบทีละตัวอักษรไม่ใช่ทั้งคำหรือทั้งสติงค์เหมือน Binary Search Tree 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 7

  8. การดำเนินงาน(ต่อ) Data Structure typedef struct tnode *Tptr; typedef struct tnode { char splitchar; Tptr lokid, eqkid, hikid; }Tnode; 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 8

  9. i b s o a e h n t n t s y e f r o t การดำเนินงาน(ต่อ) การค้นหานั้นจะเปรียบเทียบค่าระหว่างตัวอักษรปัจจุบันของ string ที่ต้องการหากับตัวอักษรในโหนดนั้น ถ้าตัวอักษรที่ต้องการหามีค่าน้อยกว่าจะเลื่อนไปยังโหนดลูกทางซ้าย ถ้าตัวอักษรที่ต้องการหามีค่ามากกว่าจะเลื่อนไปยังโหนดลูกทางขวา แต่ถ้ามีค่าเท่ากันจะเลื่อนลงไปยังโหนดลูกตรงกลางและเลื่อนตัวอักษรที่ต้องการเป็นตัวถัดไป 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 9

  10. การดำเนินงาน(ต่อ) สมมติว่าต้องการค้นหาคำว่า “by” จะเริ่มต้นที่ root ซึ่งคือตัว “i”ดังนั้นเมื่อเปรียบเทียบแล้วจะเลื่อนลงมายังโหนดลูกทางซ้าย เพราะค่า “b”มีค่าน้อยกว่าค่า “i” i b s o a e h n t n t s y e f r o t 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 10

  11. การดำเนินงาน(ต่อ) เมื่อเลื่อนลงมาแล้วก็จะเปรียบเทียบกับตัวอักษรของโหนดนั้น ในที่นี้เปรียบเทียบแล้วมีค่าเท่ากันจะเลื่อนลงมาโหนดลูกตรงกลาง และเลื่อนสติงค์เป็นตัวถัดไป คือตัว “y” i b s o a e h n t n t s y e f r o t 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 11

  12. การดำเนินงาน(ต่อ) เมื่อเลื่อนลงมาแล้วก็จะเปรียบเทียบ“y”กับตัวอักษรของโหนดนั้น ในที่นี้เปรียบเทียบแล้วมีค่ามากกว่าจะเลื่อนลงมาโหนดลูกทางขวา i b s o a e h n t n t s y e f r o t 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 12

  13. การดำเนินงาน(ต่อ) เมื่อถึงจุดนี้ก็จะสรุปได้ว่า ใน Tree นี้มีคำว่า “by” อยู่ด้วย i b s o a e h n t n t s y e f r o t 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 13

  14. i b s o a e h n t n t s y e f r o t การดำเนินงาน(ต่อ) Membership Searching String = b y s int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 14

  15. i b s o a e h n t n t s y e f r o t การดำเนินงาน(ต่อ) Membership Searching String = b y s int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 15

  16. i b s o a e h n t n t s y e f r o t การดำเนินงาน(ต่อ) Membership Searching String = b y s int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 16

  17. i b s o a e h n t n t s y e f r o t การดำเนินงาน(ต่อ) Membership Searching String = b y s int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 17

  18. การดำเนินงาน(ต่อ) Membership Searching i String = b y b s o s a e h n t n t s y e f r o t int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 18

  19. การดำเนินงาน(ต่อ) Membership Searching i String = b y b s o s a e h n t n t s y e f r o t int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } if(!p) return 0; 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 19

  20. การดำเนินงาน(ต่อ) Membership Searching i String = b y b s o s a e h n t n t s y e f r o t int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 20

  21. การดำเนินงาน(ต่อ) Membership Searching i String = b y b s o s a e h n t n t s y e f r o t int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 21

  22. การดำเนินงาน(ต่อ) Membership Searching i String = b y b s o s a e h n t n t s y e f r o t int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 22

  23. การดำเนินงาน(ต่อ) Membership Searching i String = b y b s o s a e h n t n t s y e f r o t int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 23

  24. การดำเนินงาน(ต่อ) Membership Searching i String = b y b s o s a e h n t n t s y e f r o t int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 24

  25. int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } การดำเนินงาน(ต่อ) Membership Searching i String = b y b s o s a e h n t n t s y e f r o t int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 25

  26. การดำเนินงาน(ต่อ) Membership Searching i String = b y b s o s a e h n t n t s y e f r o t int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } if(!p) return 0; 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 26

  27. การดำเนินงาน(ต่อ) Membership Searching i String = b y b s o s a e h n t n t s y e f r o t int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 27

  28. การดำเนินงาน(ต่อ) Membership Searching i String = b y b s o s a e h n t n t s y e f r o t int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 28

  29. การดำเนินงาน(ต่อ) Membership Searching i String = b y b s o s a e h n t n t s y e f r o t int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 29

  30. การดำเนินงาน(ต่อ) Membership Searching i String = b y b s o s a e h n t n t s y e f r o t int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 30

  31. การดำเนินงาน(ต่อ) Membership Searching i String = b y b s o s a e h n t n t s y e f r o t int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 31

  32. การดำเนินงาน(ต่อ) Membership Searching i String = b y b s o s a e h n t n t s y e f r o t int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 32

  33. การดำเนินงาน(ต่อ) Membership Searching i String = b y b s o s a e h n t n t s y e f r o t int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 33

  34. การดำเนินงาน(ต่อ) Membership Searching i String = b y b s o s a e h n t n t s y e f r o t int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 34

  35. การดำเนินงาน(ต่อ) Membership Searching i String = b y b s o s a e h n t n t s y e f r o t int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 35

  36. การดำเนินงาน(ต่อ) Membership Searching i String = b y b s o s a e h n t n t s y e f r o t int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 36

  37. การดำเนินงาน(ต่อ) Membership Searching i String = b y b s o s a e h n t n t s y e f r o t int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 37

  38. การดำเนินงาน(ต่อ) Membership Searching i String = b y b s o s a e h n t n t s y e f r o t int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 38

  39. การดำเนินงาน(ต่อ) Membership Searching i String = b y b s o s a e h n t n t s y e f r o t int rsearch(Tptr p, char *s) { if(!p) return 0; if(*s < p->splitchar) return rsearch(p->lokid, s); else if (*s > p->splitchar) return rsearch(p->hikid, s); else{ if (*s == 0) return 1; return rsearch(p->eqkid, ++s); } } 30/03/05วิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา 39

  40. i b s o a e h n t n t s y e f r o t Insert a new string String = m e s Tptr insert(Tptr p, char *s) { if(p == 0){ p = (Tptr) malloc(sizeof(Tnode)); p->splitchar = *s; p->lokid = p->eqkid = p->hikid = 0; } if(*s < p->splitchar) p->lokid = insert(p->lokid, s); else if(*s == p->splitchar){ if(*s != 0) p->eqkid = insert(p->eqkid, ++s); }else p->hikid = insert(p->hikid, s); return p; }

  41. Insert a new string i b s o String = m e a e h n t n t s s y e f r o t Tptr insert(Tptr p, char *s) { if(p == 0){ p = (Tptr) malloc(sizeof(Tnode)); p->splitchar = *s; p->lokid = p->eqkid = p->hikid = 0; } if(*s < p->splitchar) p->lokid = insert(p->lokid, s); else if(*s == p->splitchar){ if(*s != 0) p->eqkid = insert(p->eqkid, ++s); }else p->hikid = insert(p->hikid, s); return p; } if (p == 0){

  42. Insert a new string i b s o String = m e a e h n t n t s s y e f r o t Tptr insert(Tptr p, char *s) { if(p == 0){ p = (Tptr) malloc(sizeof(Tnode)); p->splitchar = *s; p->lokid = p->eqkid = p->hikid = 0; } if(*s < p->splitchar) p->lokid = insert(p->lokid, s); else if(*s == p->splitchar){ if(*s != 0) p->eqkid = insert(p->eqkid, ++s); }else p->hikid = insert(p->hikid, s); return p; } if(*s < p->splitchar)

  43. Insert a new string i b s o String = m e a e h n t n t s s y e f r o t Tptr insert(Tptr p, char *s) { if(p == 0){ p = (Tptr) malloc(sizeof(Tnode)); p->splitchar = *s; p->lokid = p->eqkid = p->hikid = 0; } if(*s < p->splitchar) p->lokid = insert(p->lokid, s); else if(*s == p->splitchar){ if(*s != 0) p->eqkid = insert(p->eqkid, ++s); }else p->hikid = insert(p->hikid, s); return p; } else if(*s == p->splitchar){

  44. Insert a new string i b s o String = m e a e h n t n t s s y e f r o t Tptr insert(Tptr p, char *s) { if(p == 0){ p = (Tptr) malloc(sizeof(Tnode)); p->splitchar = *s; p->lokid = p->eqkid = p->hikid = 0; } if(*s < p->splitchar) p->lokid = insert(p->lokid, s); else if(*s == p->splitchar){ if(*s != 0) p->eqkid = insert(p->eqkid, ++s); }else p->hikid = insert(p->hikid, s); return p; } }else

  45. Insert a new string i b s o String = m e a e h n t n t s s y e f r o t Tptr insert(Tptr p, char *s) { if(p == 0){ p = (Tptr) malloc(sizeof(Tnode)); p->splitchar = *s; p->lokid = p->eqkid = p->hikid = 0; } if(*s < p->splitchar) p->lokid = insert(p->lokid, s); else if(*s == p->splitchar){ if(*s != 0) p->eqkid = insert(p->eqkid, ++s); }else p->hikid = insert(p->hikid, s); return p; } p->hikid = insert(p->hikid, s);

  46. Tptr insert(Tptr p, char *s) { if(p == 0){ p = (Tptr) malloc(sizeof(Tnode)); p->splitchar = *s; p->lokid = p->eqkid = p->hikid = 0; } if(*s < p->splitchar) p->lokid = insert(p->lokid, s); else if(*s == p->splitchar){ if(*s != 0) p->eqkid = insert(p->eqkid, ++s); }else p->hikid = insert(p->hikid, s); return p; } Insert a new string i b s o String = m e a e h n t n t s s y e f r o t Tptr insert(Tptr p, char *s) { if(p == 0){ p = (Tptr) malloc(sizeof(Tnode)); p->splitchar = *s; p->lokid = p->eqkid = p->hikid = 0; } if(*s < p->splitchar) p->lokid = insert(p->lokid, s); else if(*s == p->splitchar){ if(*s != 0) p->eqkid = insert(p->eqkid, ++s); }else p->hikid = insert(p->hikid, s); return p; }

  47. Insert a new string i b s o String = m e a e h n t n t s s y e f r o t Tptr insert(Tptr p, char *s) { if(p == 0){ p = (Tptr) malloc(sizeof(Tnode)); p->splitchar = *s; p->lokid = p->eqkid = p->hikid = 0; } if(*s < p->splitchar) p->lokid = insert(p->lokid, s); else if(*s == p->splitchar){ if(*s != 0) p->eqkid = insert(p->eqkid, ++s); }else p->hikid = insert(p->hikid, s); return p; } Tptr insert(Tptr p, char *s) { if(p == 0){ p = (Tptr) malloc(sizeof(Tnode)); p->splitchar = *s; p->lokid = p->eqkid = p->hikid = 0; } if(*s < p->splitchar) p->lokid = insert(p->lokid, s); else if(*s == p->splitchar){ if(*s != 0) p->eqkid = insert(p->eqkid, ++s); }else p->hikid = insert(p->hikid, s); return p; } if (p == 0){

  48. Insert a new string i b s o String = m e a e h n t n t s s y e f r o t Tptr insert(Tptr p, char *s) { if(p == 0){ p = (Tptr) malloc(sizeof(Tnode)); p->splitchar = *s; p->lokid = p->eqkid = p->hikid = 0; } if(*s < p->splitchar) p->lokid = insert(p->lokid, s); else if(*s == p->splitchar){ if(*s != 0) p->eqkid = insert(p->eqkid, ++s); }else p->hikid = insert(p->hikid, s); return p; } Tptr insert(Tptr p, char *s) { if(p == 0){ p = (Tptr) malloc(sizeof(Tnode)); p->splitchar = *s; p->lokid = p->eqkid = p->hikid = 0; } if(*s < p->splitchar) p->lokid = insert(p->lokid, s); else if(*s == p->splitchar){ if(*s != 0) p->eqkid = insert(p->eqkid, ++s); }else p->hikid = insert(p->hikid, s); return p; } Tptr insert(Tptr p, char *s) { if(p == 0){ p = (Tptr) malloc(sizeof(Tnode)); p->splitchar = *s; p->lokid = p->eqkid = p->hikid = 0; } if(*s < p->splitchar) p->lokid = insert(p->lokid, s); else if(*s == p->splitchar){ if(*s != 0) p->eqkid = insert(p->eqkid, ++s); }else p->hikid = insert(p->hikid, s); return p; } if (p == 0){ if(*s < p->splitchar)

  49. Insert a new string i b s o String = m e a e h n t n t s s y e f r o t Tptr insert(Tptr p, char *s) { if(p == 0){ p = (Tptr) malloc(sizeof(Tnode)); p->splitchar = *s; p->lokid = p->eqkid = p->hikid = 0; } if(*s < p->splitchar) p->lokid = insert(p->lokid, s); else if(*s == p->splitchar){ if(*s != 0) p->eqkid = insert(p->eqkid, ++s); }else p->hikid = insert(p->hikid, s); return p; } Tptr insert(Tptr p, char *s) { if(p == 0){ p = (Tptr) malloc(sizeof(Tnode)); p->splitchar = *s; p->lokid = p->eqkid = p->hikid = 0; } if(*s < p->splitchar) p->lokid = insert(p->lokid, s); else if(*s == p->splitchar){ if(*s != 0) p->eqkid = insert(p->eqkid, ++s); }else p->hikid = insert(p->hikid, s); return p; } Tptr insert(Tptr p, char *s) { if(p == 0){ p = (Tptr) malloc(sizeof(Tnode)); p->splitchar = *s; p->lokid = p->eqkid = p->hikid = 0; } if(*s < p->splitchar) p->lokid = insert(p->lokid, s); else if(*s == p->splitchar){ if(*s != 0) p->eqkid = insert(p->eqkid, ++s); }else p->hikid = insert(p->hikid, s); return p; } if (p == 0){ p->lokid = insert(p->lokid, s);

  50. Tptr insert(Tptr p, char *s) { if(p == 0){ p = (Tptr) malloc(sizeof(Tnode)); p->splitchar = *s; p->lokid = p->eqkid = p->hikid = 0; } if(*s < p->splitchar) p->lokid = insert(p->lokid, s); else if(*s == p->splitchar){ if(*s != 0) p->eqkid = insert(p->eqkid, ++s); }else p->hikid = insert(p->hikid, s); return p; } Tptr insert(Tptr p, char *s) { if(p == 0){ p = (Tptr) malloc(sizeof(Tnode)); p->splitchar = *s; p->lokid = p->eqkid = p->hikid = 0; } if(*s < p->splitchar) p->lokid = insert(p->lokid, s); else if(*s == p->splitchar){ if(*s != 0) p->eqkid = insert(p->eqkid, ++s); }else p->hikid = insert(p->hikid, s); return p; } Insert a new string i b s o String = m e a e h n t n t s s y e f r o t Tptr insert(Tptr p, char *s) { if(p == 0){ p = (Tptr) malloc(sizeof(Tnode)); p->splitchar = *s; p->lokid = p->eqkid = p->hikid = 0; } if(*s < p->splitchar) p->lokid = insert(p->lokid, s); else if(*s == p->splitchar){ if(*s != 0) p->eqkid = insert(p->eqkid, ++s); }else p->hikid = insert(p->hikid, s); return p; } Tptr insert(Tptr p, char *s) { if(p == 0){ p = (Tptr) malloc(sizeof(Tnode)); p->splitchar = *s; p->lokid = p->eqkid = p->hikid = 0; } if(*s < p->splitchar) p->lokid = insert(p->lokid, s); else if(*s == p->splitchar){ if(*s != 0) p->eqkid = insert(p->eqkid, ++s); }else p->hikid = insert(p->hikid, s); return p; } Tptr insert(Tptr p, char *s) { if(p == 0){ p = (Tptr) malloc(sizeof(Tnode)); p->splitchar = *s; p->lokid = p->eqkid = p->hikid = 0; } if(*s < p->splitchar) p->lokid = insert(p->lokid, s); else if(*s == p->splitchar){ if(*s != 0) p->eqkid = insert(p->eqkid, ++s); }else p->hikid = insert(p->hikid, s); return p; }

More Related