สมุดโทรศัพท์ ด้วย hash table c++
ทำ โปรแกรมสมุดรายนามโทรศัพท์ โดยจัดเก็บข้อมูลไว้ในแฟ้มข้อมูลชื่อ phonelist.txt คือ ตรงนี้ทำได้แล้วค่ะ
แล้วให้นำรายการข้อมูลโทรศัพท์ทั้งหมดเหล่านั้นมาจัดเก็บในโครงสร้างข้อมูลแบบลิงค์ลิสต์ มีทั้งหมด 676 ลิสต์ โดยข้อมูลเบอร์โทรแต่ละอันจะบรรจุเป็นโหนด ซึ่งจะประกอบด้วยข้อมูล ชื่อ, นามสกุล, ประเภทเบอร์, และหมายเลขเบอร์โทร เป็นอย่างน้อย ในการระบุว่าลิงค์ลิสต์ใดที่จะให้โหนดนั้นบรรจุอยู่นั้นจะใช้หลักการของแฮช โดยข้อมูลที่เก็บไว้ในตารางแฮช โดย ใช้แฮชฟังก์ชั่น คือ การพิจารณาเฉพาะตัวอักษรภาษาอังกฤษตัวแรกและตัวที่สองโดยไม่สนใจพิมพ์เล็กพิมพ์ใหญ่ (Case Insensitive) ของชื่อที่ระบุไว้ในโหนด ได้แก่
ตัวอักษร "Aa" หรือ "aa" มีค่าแอดเดรสเป็น 0, "AB" หรือ "ab" มีค่าแอดเดรสเป็น 1, "Az" หรือ "az" มีค่าแอดเดรสเป็น 25, "Ba" หรือ "ba" มีค่าแอดเดรสเป็น 26, ..., "Zz" หรือ "ZZ" มีค่าแอดเดรสเป็น 675 (คำนวณมาจาก 26x26-1)
คือ การใส่ข้อมูลลงโหนดโดยใช้หลักการของแฮชนี้ทำยังไงหรอค่ะ แล้วจะใช้ฟังก์ชันไหนในการเรียงลำตัวตัวอักษรได้บ้างค่ะ
|