תכנות — שיעור 138 14/February/2011    

Hash Functions

פונקציות hash "משתדלות" להפריד בין הערכים המתקבלים כדי לפזר ולהשתמש באופן אחיד בכניסות לטבלה. לכן יש חשיבות להשתמש בכל ביט של המפתח(ות). לצורך זה אפשר להשתמש בפעולות על ביטים של C הדומים לפעולות לוגיות. הזכרנו את הפעולות-

|   &   ^  |=   &=   ^=
דוגמא נמצאת ב strhash-v3.c

Hash Tables

יש מגון סוגים של טבלאות-hash. אנו נתרכז בטבלאות בגודל של מספר ראשוני המסַיֵעַ בפִזור. כל כניסה בטבלה תהיה התחלה של רשימה מקושרת. האברים ברשימה יכילו מידע כלשהו הכולל את המפתח לפונקצית-hash.

תרגילים

  1. השלם תרגילים קודמים
  2. כתוב תכנית hash-pdb-v1 שמקימת את הדרישות הבאות:
  3. בדוגמת ההרצה שתשלח, יהיו שורת הפקודה במדויק, עם קריאה של 10 רשומות נתונים לטבלת-hash בגודל 7, עם הדפסת טבלה, והדפסת סטטיסטיקה.
    אפשר לממש את התכנית בקובץ .c אחד ולשלוח אותו. אבל אפשר ורצוי לפצל, במקרה כזה יש להוסיף Makefile שיאפשר לבנות את התכנית, ולארוז את קבצי המקור בקובץ .tar.gz. בכל מקרה, נא לשלוח קבץ אחד בלבד.

חזרה לעמוד האם