บทที่ 10 การค้นหาข้อมูล (Searching)

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
ตารางแฮช Hash Table.
Advertisements

Hashing Function มีหลายฟังก์ชั่น การเลือกใช้ขึ้นอยู่กับความเหมาะสมของข้อมูล ตัวอย่างของฟังก์ชั่นแฮชมีดังนี้ 1. Mod คือการนำค่าคีย์มา mod ด้วยค่า n ใด.
Searching.
Chapter 3 Data Representation (การแทนข้อมูล)
ศูนย์เรียนรู้ชุมชนเศรษฐกิจ พอเพียงบ้านซ่อง อ.พนมสารคาม จ.ฉะเชิงเทรา
สาระที่ ๒ การเขียน.
การบริหารจัดการโครงการ และการเบิกจ่ายงบประมาณ
ยินดีต้อนรับ คณะกรรมการประเมินคุณภาพการศึกษาภายใน “สำนักส่งเสริมวิชาการและงานทะเบียน” วันอังคารที่ 23 สิงหาคม พ.ศ
Application of Electron Paramagnetic Resonance (EPR)
Lubna Shamshad (Ph.D Student) Supervisor Dr.GulRooh
Q n° R n°.
อาคารสำนักงานเขต พื้นที่การศึกษา (สพป./สพม.)
อ. ปิยวรรณ โถปาสอน
การสะกดคำในหมวดกลุ่มคำราชาศัพท์
ยินดีต้อนรับ นสต. ภ.๙.
การส่งเสริมจริยธรรมและคุณธรรม เพื่อการป้องกันการทุจริต
พอช.องค์การมหาชนของชุมชนไทย
วิชาภาษาไทย 3 1. คะแนนภาคบรรยาย 30 คะแนน 2. คะแนนภาคทักษะ 70 คะแนน
หน่วยที่ 2 การประกันคุณภาพภายในสถานศึกษา
Multiple Input Multiple Output (MIMO)
Lecturers : Boontee Kruatrachue. Room no. 913 Kritawan Siriboon
Lecturers : Boontee Kruatrachue. Room no. 913 Kritawan Siriboon
Lecturers : Boontee Kruatrachue. Room no. 913 Kritawan Siriboon
แนวการตรวจสอบภายใน การตรวจสอบรถราชการ
ทะเบียนราษฎร.
นายธนวิทย์ โพธิ์พฤกษ์ เลขที่ 8 นายอนุสรณ์ ขำหลง เลขที่ 29
เอกสารประกอบการบรรยายครั้ง ๒ วิชาซื้อขาย - เช่าทรัพย์ - เช่าซื้อ
อาจารย์อาจารีย์ ทองอ่อน
ระเบียบกระทรวงมหาดไทย
บทที่ 12 การวิเคราะห์สหสัมพันธ์และการถดถอย
DATA STRUCTURES AND ALGORITHMS
ขั้นตอนการจัดตั้งกลุ่มส่งเสริมอาชีพ จังหวัดนครราชสีมา ปี ๒๕๕๘/๕๙
ข้อมูลการศึกษาพระปริยัติธรรมแผนกธรรมและแผนกบาลี
การประชุมผู้บริหารระดับสูงกระทรวงวัฒนธรรม ครั้งที่ ๔/๒๕๖๐
การเบิกจ่ายเงินเกี่ยวกับค่าใช้จ่าย ในการบริหารงานของส่วนราชการ
ร่าง การมอบอำนาจ มหาวิทยาลัยขอนแก่น
รายงานการวิจัย.
ตอนที่ 2.๒ บทบาทหน้าที่ของเจ้าหน้าที่ส่งเสริมการเกษตรระดับอำเภอ
บทที่ 4 การกระจาย อำนาจด้านการคลัง
แนวทางการดำเนินงานกิจกรรม/โครงการ งบประมาณกองทุนพัฒนาบทบาทสตรี
การพัฒนาระบบบริหารจัดการกำลังคนด้านสุขภาพ “การพัฒนาบุคลากร”
วันเสาร์ที่ 2 กรกฎาคม 2559 วิทยาลัยเทคโนโลยีอักษรพัทยา
วิชาสังคมศึกษา ม.3 สาระที่ 1 ศาสนา ศีลธรรม จริยธรรม.
วินัยข้าราชการ.
มหาวิยาลัยราชภัฏนครราชสีมา
โครงการสนับสนุนสินเชื่อเกษตรกรชาวสวนยาง รายย่อยเพื่อประกอบอาชีพเสริม
การขัดกันระหว่างประโยชน์ส่วนบุคคลและ ประโยชน์ส่วนรวมตามกฎหมาย ป.ป.ช.
การบริหารการเงิน ในสถานศึกษา
องค์ประกอบและผลกระทบของธุรกิจไมซ์
โคลง ร่าย และ โดยครูธาริตา นพสุวรรณ
สมาชิกโต๊ะ 1 นายสุรวินทร์ รีเรียง นายภาณุวิชญ์ อนุศรี
ตำบลห้วยสัตว์ใหญ่ ประวัติความเป็นมา
การยืมเงิน จากแหล่งเงินงบประมาณรายได้
วิชา หลักการตลาด บทที่ 7 การออกแบบกลยุทธ์ราคา
ผังมโนทัศน์สาระการเรียนรู้ภาษาไทย ชั้นมัธยมศึกษาปีที่ ๑
สาระสำคัญพ.ร.บ.การทวงถามหนี้ พ.ศ.๒๕๕๘ สาระสำคัญพ.ร.บ.การทวงถามหนี้ พ.ศ.๒๕๕๘.
ตำบลหนองพลับ ประวัติความเป็นมา
มหัศจรรย์ 1,000 วันแรกของชีวิต “อนามัยสิ่งแวดล้อมและสุขนิสัย”
แบบทดสอบ เรื่อง ความน่าจะเป็น.
By อาจารย์ปิยะพงษ์ ทวีพงษ์ โรงเรียนสาธิตมหาวิทยาลัยราชภัฏสวนสุนันทา
Hashing Sanchai Yeewiyom
สมาชิกสหกรณ์จะมีฐานะดีขึ้นอย่างไร
การปฏิรูประบบศาลยุติธรรม หลังรัฐประหาร 2557
วิชา สังคมไทยในบริบทโลก
โครงงานประวัติศาสตร์ เรื่อง พัฒนาการของทวีปอเมริกาใต้
ธาตุ สารประกอบ และปฏิกิริยาเคมี
การอ่าน.
การบริหารหลักสูตร ความหมาย : การดำเนินงานที่เกี่ยวข้องกับการทำหลักสูตร และเอกสารประกอบหลักสูตร ไปสู่การปฏิบัติในสถานการณ์จริงหรือกิจกรรมการเรียนการสอนให้เป็นไปตามเป้าหมายที่กำหนดไว้ในหลักสูตรโดยอาศัยการสนับสนุนและร่วมมือจากบุคคลที่เกี่ยวข้องกับการใช้หลักส
การสังเคราะห์และสมบัติทางไฟฟ้าของเซรามิกระบบ (Bi1/2K1/2)TiO3 – LiSbO3
การพิจารณาสัญชาติของบุคคล
ใบสำเนางานนำเสนอ:

บทที่ 10 การค้นหาข้อมูล (Searching)

10.1 บทนำ ข้อมูลข่าวสารที่เก็บอยู่ในคอมพิวเตอร์ หลังจากการประมวลผลแล้ว ผู้ใช้ย่อมต้องนำข้อมูลข่าวสารเหล่านั้นออกมาใช้ ซึ่งขั้นตอนในการนำข้อมูลออกจากคอมพิวเตอร์จะเร็วขึ้นหรือช้า ขึ้นอยู่กับอัลกอริทึมที่ใช้ และอัลกอริทึมที่ใช้ก็ขึ้นอยู่กับลักษณะการจัดเก็บข้อมูลนั้น

10.2 ประเภทของการค้นหาข้อมูล เมื่อมีการจัดเก็บข้อมูลในโครงสร้างข้อมูลประเภทต่าง ๆ แล้ว ผู้ใช้สามารถค้นหาข้อมูลได้โดยใช้อัลกอริทึมในการค้าหาข้อมูลประเภทต่าง ๆ ดังนี้ คือ 10.2.1 การค้นหาข้อมูลแบบเรียงลำดับ (Sequential Search) 10.2.2 การค้นหาข้อมูลแบบไบนารี (Binary Search) 10.2.3 การค้นหาข้อมูลแบบโดยการใช้แฮชชิ่ง (Hashing)

10.2 ประเภทของการค้นหาข้อมูล 10.2.1 การค้นหาข้อมูลแบบเรียงลำดับ (Sequential Search) หลักการในการค้นหาข้อมูลแบบเรียงลำดับ มีดังนี้ 1. กำหนดข้อมูลที่ต้องการค้นหา 2. เริ่มต้นค้นหาข้อมูลในตำแหน่งแรกสุด 3. ทำการเปรียบเทียบค่าข้อมูลที่ต้องการค้นหากับค้าข้อมูลในตำแหน่งนั้น ๆ - ถ้าค่าทั้งสองตรงกัน แสดงว่าค้นพบข้อมูลที่ต้องการ และจบการทำงานในส่วนของการค้นหา

10.2 ประเภทของการค้นหาข้อมูล 10.2.1 การค้นหาข้อมูลแบบเรียงลำดับ (Sequential Search) - ถ้าค่าทั้งสองตรงกัน แสดงว่าค้นพบข้อมูลที่ต้องการ และจบการทำงานในส่วนของการค้นหา - ทำการเปรียบเทียบในข้อ 3 จนพบข้อมูลที่ต้องการ - ถ้าเปรียบเทียบไปจนถึงข้อมูลตัวสุดท้ายแล้วยังไม่พบข้อมูลที่ต้องการ ให้จบการทำงานในส่วนของการค้นหา แสดงว่าไม่มีข้อมูลที่ต้องการ

10.2 ประเภทของการค้นหาข้อมูล ตัวอย่างที่ 10.1 กำหนดข้อมูลที่จัดเก็บไว้ดังนี้ 85 62 67 92 64 58 ให้แสดงขั้นตอนการค้นหา ITEM = 92 โดยวิธีการค้นหาข้อมูลแบบเรียงลำดับ วิธีทำ 1. เปรียบเทียบ ITEM = 92 กับข้อมูลในตำแหน่งที่ 1 คือ 85 ซึ่งข้อมูลไม่ตรงกัน จึงเลื่อนข้อมูลไปอีกหนึ่งตำแหน่ง 2. เปรียบเทียบ ITEM = 92 กับข้อมูลในตำแหน่งที่ 2 คือ 65 ซึ่งข้อมูลไม่ตรงกัน จึงเลื่อนข้อมูลไปอีกหนึ่งตำแหน่ง

10.2 ประเภทของการค้นหาข้อมูล ตัวอย่างที่ 10.1 กำหนดข้อมูลที่จัดเก็บไว้ดังนี้ 85 62 67 92 64 58 วิธีทำ 3 เปรียบเทียบ ITEM = 92 กับข้อมูลในตำแหน่งที่ 3 คือ 67 ซึ่งข้อมูลไม่ตรงกัน จึงเลื่อนข้อมูลไปอีกหนึ่งตำแหน่ง 4. เปรียบเทียบ ITEM = 92 กับข้อมูลในตำแหน่งที่ 4 คือ 92 ซึ่งข้อมูลตรงกัน ดังนั้นผลลัพธ์ที่ได้ คือ ITEM = 92 อยู่ตำแหน่งที่ 4

10.2 ประเภทของการค้นหาข้อมูล 10.2.2 การค้นหาข้อมูลแบบไบนารี (Binary Search) การค้นพบข้อมูลแบบไบนารี จะใช้ได้กับข้อมูลที่เรียงลำดับแล้วเท่านั้น วิธีการค้นหาทำได้ดังนี้ คือ กำหนดข้อมูลที่ต้องการหา 1. แบ่งข้อมูลออกเป็น 2 กลุ่ม 2. เปรียบเทียบข้อมูลที่ต้องการค้นหากับข้อมูลที่อยู่ตำแหน่งกึ่งกลาง หากไม่เท่ากันแสดงว่ายังไม่พบ 3. ถ้าข้อมูลที่ต้องการค้นหามากกว่าข้อมูลในตำแหน่งกึ่งกลาง ให้ค้นหาต่อไปในครึ่งหลัง

10.2 ประเภทของการค้นหาข้อมูล 10.2.2 การค้นหาข้อมูลแบบไบนารี (Binary Search) 4. ถ้าข้อมูลที่ต้องการค้นหาน้อยกว่าข้อมูลในตำแหน่งกึ่งกลาง ให้ค้นหาต่อไปในครึ่งแรก 5. ทำเช่นนี้ไปเรื่อย ๆ จนค้นพบ หรือจนกว่าแบ่งครึ่งข้อมูลไม่ได้แล้ว แสดงว่าไม่มีข้อมูลที่ต้องการ

10.2 ประเภทของการค้นหาข้อมูล ตัวอย่างที่ 10.2 กำหนดข้อมูลที่จัดเก็บไว้ดังนี้ 2 4 5 8 9 12 16 19 20 24 27 ให้แสดงขั้นตอนการค้นหา ITEM = 20 โดยวิธีการค้นหาข้อมูลแบบไบนารี วิธีทำ 1. เปรียบเทียบ 20 กับข้อมูลที่อยู่ในตำแหน่งกึ่งกลาง คือ 12 2. เนื่องจาก 20 > 12 ดังนั้นจึงค้นหาต่อในครึ่งหลัง 3. เปรียบเทียบ 20 กับข้อมูลที่อยู่ตำแหน่งกึงกลางของครึ่งหลัง คือ 20 4. แสดงว่าค้นพบข้อมูลที่ต้องการ

10.2 ประเภทของการค้นหาข้อมูล 10.2.3 การค้นหาข้อมูลแบบโดยการใช้แฮชชิ่ง (Hashing) เป็นวิธีการจัดเก็บและค้นหาข้อมูลอีกอย่างหนึ่ง โดยนำค่าของข้อมูลที่ต้องการจัดเก็บมาทำการแปลงให้เป็นตำแหน่ง (Address) ที่จัดเก็บข้อมูล ซึ่งมีลักษณะเป็นฟังก์ชันที่กำหนดไว้ และเรียกฟังก์ชันนี้ว่า Hashing Function แบ่งออกเป็น ดังนี้ คือ 1. วิธีอาศัยการหาร โดยฟังก์ชันโมดูโล ในรูปแบบ K Mod N ซึ่งหมายถึงค่าของเศษที่ได้จากการหาร K ด้วย N

10.2 ประเภทของการค้นหาข้อมูล 10.2.3 การค้นหาข้อมูลแบบโดยการใช้แฮชชิ่ง (Hashing) K Mod N ดังนั้นฟังก์ชัน H(K) สามารถกำหนดได้ ดังนี้ H(K) = K Mod N + L0 โดยที่ N หมายถึง ขนาดตาราง L0 หมายถึง ค่าเริ่มต้นของตำแหน่งที่ต้องการ

10.2 ประเภทของการค้นหาข้อมูล ตัวอย่างที่ 10.3 จงคำนวณตำแหน่งของข้อมูลที่กำหนดให้ จากฟังก์ชัน H(K) = K Mod 7 + 1 ข้อมูลที่กำหนดให้ คือ 25 16 27 31 18 40 37 วิธีทำ H(25) = 5 H(16) = 3 H(27) = 7 H(31) = 4

10.2 ประเภทของการค้นหาข้อมูล ข้อมูลที่กำหนดให้ คือ 25 16 27 31 18 40 37 วิธีทำ H(18) = 5 H(40) = 6 H(37) = 3

10.2 ประเภทของการค้นหาข้อมูล 2. แบบ Mid Square เป็นเทคนิคการคำนวณตำแหน่งของข้อมูล โดยให้ยกกำลัง 2 ของข้อมูล จากนั้นให้ใช้บิตที่อยู่ตรงกลางจำนวน t บิต มาใช้ ถ้าตารางที่สร้างมีขนาด 2t ช่อง ตัวอย่างที่ 10.4 จงคำนวณตำแหน่งของชุดข้อมูล 31 42 51 14 12 3 7 17 กำหนดตารางที่ใช้เก็บตำแหน่งมี 16 ช่อง คือ ตำแหน่ง 0-15 วิธีทำ เนื่องจากขนาดของตาราง คือ 16 ช่อง = 24 ดังนั้น ค่าของคีย์ต้องใช้จำนวน 4 บิต

10.2 ประเภทของการค้นหาข้อมูล K K2 ไบนารีของ K2 หลังจากที่ค่า K2 ของคีย์แต่ละตัวแล้ว เราจะเลือก 4 บิตจากค่าในรูปไบนารีของ K2 ซึ่ง 4 บิต ที่เลือกจะเป็น 4 บิต ใดก็ได้อยู่ในดุลพินิจของเราเอง ส่วนใหญ่จะเลือก 4 บิต ที่มีลักษณะต่างกันให้มากที่สุด 31 961 1 42 1761 51 2601 14 196 12 144 3 9 7 49 17 289

10.2 ประเภทของการค้นหาข้อมูล กรณีนี้ ถ้าเลือกบิตที่ 3, 4, 5, 6 นับจากทางขวา จะได้ K(31) = K(42) 1 9 K(51 8 K(14) K(12) 4 K(3) 2 K(7) 12 K(17)

10.2 ประเภทของการค้นหาข้อมูล 3. แบบพับ (Folding) ในกรณีที่คีย์มีขนดใหญ่ประกอบด้วยตัวเลขหลายหลักและจำนวนช่องในตารางเล็กมากกว่า เราสามารถคำนวณตำแหน่งที่อยู่ของแต่ละคีย์โดยการพับ ตัวอย่างที่ 10.5 ถ้าข้อมูลประกอบด้วยตัวเลข 8 หลัก และตำแหน่งของข้อมูลมีค่า 000-999 ซึ่งประกอบด้วยตัวเลข 3 หลัก วิธีทำ - เลือกหลักของข้อมูล 3 หลัก ในที่นี้เลือกหลักที่ 3, 4, 5 1 2 3 4 5 6 7 8

10.2 ประเภทของการค้นหาข้อมูล - ทำการพับข้อมูลหลักที่เหลือคือหลักที่ 1, 6, 7, 8 ไปยังหลักที่ 3, 4, 5 ดังนี้ พับหลักที่ 2 ไปยังหลักที่ 3 พับหลักที่ 1 ไปยังหลักที่ 4 พับหลักที่ 6 ไปยังหลักที่ 5 พับหลักที่ 7 ไปยังหลักที่ 4 พับหลักที่ 8 ไปยังหลักที่ 3 - เมื่อพับแล้วให้นำตัวเลขในตำแหน่งเดียวกันมาบวกกัน 1 2 3 4 5 6 7 8

10.2 ประเภทของการค้นหาข้อมูล ตัวอย่างที่ 10.6 จงคำนวณตำแหน่งของข้อมูล 23107830 โดยวิธีพับ ซึ่งกำหนดตำแหน่งของข้อมูลประกอบด้วย ตัวเลข 3 หลัก วิธีทำ - ข้อมูลที่กำหนด คือ - หลักข้อมูลที่เลือกคือ 4, 5, 6 และทำการพับข้อมูล 1 2 3 4 5 6 7 8 2 3 1 7 8 3

10.2 ประเภทของการค้นหาข้อมูล - นำตัวเลขในตำแหน่งเดียวกันมาบวกกัน ตำแหน่งที่ 4 0 + 1 = 1 ดังนั้นตำแหน่งของข้อมูล 23107830 = 103 1 2 3 4 5 6 7 8 2 3 1 7 8 3

10.2 ประเภทของการค้นหาข้อมูล 4. Digital Analysis วิธีนี้ใช้ค่าของตำแหน่งข้อมูลเพียงบางส่วนเท่านั้น ดังนั้นจะต้องมีวิธีการในการพิจารณาตำแหน่งใดควรใช้ ซึ่งการเรียกค่าตำแหน่งหนึ่งตำแหน่งใดในหลาย ๆ ตำแหน่ง มีหลักการดังนี้คือ เลือกตำแหน่งที่มีการกระจายสม่ำเสมอ ซึ่งสามารถนำตำแหน่งที่เลือกไปใส่ใน Hashing Function แบบอื่น ๆ ได้ ตัวอย่างที่ 10.7 จงวิเคราะห์ตัวเลขต่อไปนี้ โดยให้เลือก 2 ตำแหน่งที่เหมาะสมเพื่อใช้เป็นค่าของตำแหน่งข้อมูล 2328 4123 2645 8326 2529 2648

10.2 ประเภทของการค้นหาข้อมูล 2328 4123 2645 8326 2529 2648 วิธีทำ 1. นำข้อมูลที่กำหนดให้มาสร้างตาราง โดยแยกเป็นแต่ละตำแหน่ง ดังนี้ 1 2 3 4 8 6 5 9

2. สร้างตารางเพื่อทำการวิเคราะห์ตัวเลขในแต่ละตำแหน่ง 1 2 3 4 5 6 7 8 9

10.2 ประเภทของการค้นหาข้อมูล จากการวิเคราะห์ตัวเลข จะเห็นว่า ตำแหน่ง 2, 4 มีการกระจายตัวเลขที่สม่ำเสมอกว่าตำแหน่งอื่น ดังนั้นจึงเลือกตำแหน่ง 2, 4 เพื่อกำหนดค่าของตำแหน่งข้อมูล ดังนื้ คือ H (2328) = 38 H (4123) = 13 H (2645) = 65 H (8326) = 36 H (2529) = 59 H (2648) = 68

10.3 เทคนิคการแก้ปัญหาการชนกันของตำแหน่งของข้อมูล ในการจัดเก็บและค้นหาข้อมูลโดยการใช้แอชชิง เป็นค่าของตำแหน่งที่ใช้ในการจัดเก็บข้อมูลนั้นโดยวิธีต่าง ๆ ซึ่งค่าของตำแหน่งที่ได้จึงมีโอกาสชนกัน คือ ข้อมูลต่างกันเมื่อนำมาแปลงหาค่าของตำแหน่งจะได้ค่าเดียวกัน ดังนั้นจึงต้องมีวิธีแก้ปัญหา ดังนี้ คือ

10.3 เทคนิคการแก้ปัญหาการชนกันของตำแหน่งของข้อมูล 10.3.1 วิธี Chaining เป็นวิธีที่ใช้ Pointer ของ Linked List เพื่อชี้ตำแหน่งถัดไป แบ่งออกเป็น 2 วิธี คือ 1. วิธี Chaining แบบที่แต่ละ Chain มีขนาดเท่ากัน หมายถึง ตารางที่ใช้เก็บตำแหน่งของข้อมูล ถูกออกแบบเป็นส่วน ๆ แต่ละส่วนที่เรียกว่า Bucket จำนวน n ส่วน แต่ละส่วนมีขนาด m ช่อง มีลักษณะเป็น Array ขนาด n x m ดังนี้

10.3 เทคนิคการแก้ปัญหาการชนกันของตำแหน่งของข้อมูล 1. วิธี Chaining แบบที่แต่ละ Chain มีขนาดเท่ากัน กรณีที่ข้อมูล 2 ตัว นำมาแปลงได้ตำแหน่งเดียวกัน ให้ใช้ตำแหน่งถัดไปในส่วนนั้น ๆ ถ้าส่วนใดค่าของตำแหน่งถูกใช้หมด ให้นำค่าข้อมูลนั้นไปเก็บไว้ในส่วน Overflow ส่วนที่ 1 M ช่อง ส่วนที่ 2 M ช่อง ส่วนที่ 1 M ช่อง ส่วน Overflow

ตัวอย่างที่ 10.8 กำหนดชุดข้อมูล 42 51 82 14 2 15 5 6 ให้แปลงค่าข้อมูลให้เป็นค่าของตำแหน่ง โดยใช้ Hashing Function H(K) = K Mod 5 + 1 โดยให้หลีกเลี่ยงการชนกันโดยใช้ Chaining แบ่งตารางออกเป็น 5 ส่วน แต่ละส่วนมี 4 ช่อง วิธีทำ ข้อมูล 42 51 82 14 2 15 5 6 ตำแหน่ง 3 2 3 5 3 1 1 2 15 ตำแหน่ง = 1 5 51 ตำแหน่ง = 2 6 82 ตำแหน่ง = 3 42 2 82 2 42 ตำแหน่ง = 4 14 ตำแหน่ง = 5

10.3 เทคนิคการแก้ปัญหาการชนกันของตำแหน่งของข้อมูล 2. วิธี Chaining แบบที่แต่ละ Chain มีขนาดไม่เท่ากัน ขึ้นอยู่กับจำนวนข้อมูลที่ตกอยู่ใน Chain นั้น ๆ วิธีนี้อาศัย Linked List จำนวน n โหนด แต่ละโหนดใช้สำหรับค่าของตำแหน่ง 1 ค่า ซึ่งแต่ละโหนดประกอบด้วย 2 ส่วน คือ - ส่วนที่เก็บค่าข้อมูล - ส่วนที่เก็บ Pointer

ตัวอย่างที่ 10.9 กำหนดชุดข้อมูล 42 49 82 14 2 15 5 6 ให้แปลงค่าข้อมูลให้เป็นค่าของตำแหน่ง โดยใช้ Hashing Function H(K) = K Mod 7 + 1 โดยให้หลีกเลี่ยงการชนกันโดยใช้ Chaining ที่มีขนาดไม่เท่ากัน วิธีทำ ข้อมูล 42 49 82 14 2 15 5 6 ตำแหน่ง 1 1 6 1 3 2 6 7 1 42 49 14 2 15 3 2 4 X 5 X 6 82 5 7 X

10.3 เทคนิคการแก้ปัญหาการชนกันของตำแหน่งของข้อมูล 10.3.2 วิธี Rehashing วิธีนี้เป็นวิธีที่ง่ายที่สุด โดยการคำนวณค่าของตำแหน่งใหม่ โดยการบวกค่าคงที่ค่าหนึ่งเข้ากับ Hashing Function ที่เกิดการชนกัน