עבור לתוכן

האם אפשר לרוץ על Hash Table בצורה סדרתית?

Featured Replies

פורסם

האם אפשר לרוץ על Hash Table בצורה סדרתית כמו במערך?

אם לא, אז יש אפשרות לשמור במערך מצביעים לאיברים בHash Table בזמן יצירת הHash Table, ואז לרוץ על המערך ולגשת לכל אחד מהאיברים בHash Table?

פורסם

זה תלוי במי שמימש את הHASH TABLE

ברוב המימושים אפשר.

יעזור אם תגיד באיזו שפה אתה כותב.

פורסם
  • מחבר

C

פורסם

אז אפשר לעשות מה שאתה רוצה :)

HASH TABLE זה לא חלק מהספריה הסטנדרטית של C, בכל מקרה, אז פשוט תמצא (או תכתוב) מימוש שעושה את מה שאתה רוצה.

בכל מקרה תיזהר מהרעיון של להחזיק מצביעים לתוך אברים של container, כיוון שאם הוא מחליט להזיז אותם (לדוגמא עקב realloc) אז המצביעים שלך פתאום לא תקינים בלי שתדע!

פורסם
  • מחבר

אני יודע שHash Table הוא לא חלק מהספרייה הסטנדרטית של שפת C, אבל קיים אולי מימוש חיצוני מוכן של Hash Table עבור שפת C?

במידה ואין מימוש עבור שפת C, אז אני יכול לכתוב ב++C. יש מימוש מוכן של Hash Table עבור ++C שמאפשר ריצה סדרתית על הHash Table?

פורסם

המימוש הסטנדרטי ב-++C נקרא hash_map, ואפשר לרוץ עליו סדרתית באמצעות begin ו-end.

פורסם
  • מחבר

תודה! אתה יכול בבקשה להפנות אותי למדריך טוב בנושא עבור ++C?

פורסם
  • מחבר

תודה!

אם אני שם n איברים בHash Table, ואח"כ רץ על סדרתית, אז אני רץ עליו בסיבוכיות של (O(n או יותר?

פורסם

hash_map הוא לא חלק מהסטנדרט, אז וודא שבמימוש שלך יש אותו ושהוא תומך במה שאתה רוצה.

פורסם
  • מחבר

איפה אני יכול למצוא מימוש למה שאני רוצה? יש מצב אולי לקבל גם קישור לחבילה מוכנה עבור שפת C?

פורסם

תחפש באינרטנט. לא חסרים מליון מימושים למליון דברים.

פורסם
  • מחבר

בכל זאת, אני אשמח לקבל יישום שאני יודע בוודאות שהוא עובד טוב ושהוא מומלץ.

בבקשה? ::)

פורסם

מה הבעיה לקחת את המימוש שניתן ואם הוא לא עוזר לך, אז לעטוף אותו בקוד שעושה את מה שאתה רוצה ?

פורסם
  • מחבר

אין לי מימוש קיים. אני צריך קישור למימוש טוב.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים