עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

התייעצות למימוש TRIE בשפת C

Featured Replies

פורסם

שלום,

אני מנסה לממש בשפת C (קומפיילר VS 2013) את העץ TRIE שבו כל צומת תיראה כפי במתואר בתמונה שצירפתי. הקושי העיקרי שלי הוא איך לממש אותו.

הכלל הוא כזה: כל צומת (NODE) בעץ תכיל מערך בגודל 27 בדיוק של אותיות שה-ABC באנגלית בלבד, כאשר התא הראשון יהיה דולר (מיוצג ע"י דולר) והוא למעשה מציין סוף מחרוזת (כמו באסמבלי).

שאר האיברים במערך יהיו בעלי מפתח char של אותיות ה-ABC.

בנוסף כל תא במערך שנמצא בצומת, יכיל מצביע לבן (האות הבאה של המחרוזת כמו next*) וכן מצביע להורה (האות הקודמת של המחרוזת כמו prev*) כאשר הכלל הוא שבהתחלה, כל המצביעים של האותיות להורה ולבן יהיו מאותחלים ל-NULL.

אם וכאשר רוצים שצומת מסוימת בעץ תייצג אות, אז המצביע ה-NEXT שלה (לבן) לה יהיה NULL.

 

התחלתי מימוש התחלתי כזה מתואר בתמונה נוספת, ורציתי לדעת האם הכיוון שלי למימוש העץ הוא נכון?

זאת ועוד, רציתי לשאול האם ניתן להגדיר את המבנה tnode כך שהמערך שלו יכיל את כל התווים הדרושים ואתחול המצביעים ל-NULL בלי שאצטרך להציב ב-MAIN?

תודה על העזרה.

חיים

121.jpg

20170126_231347.jpg

נערך על-ידי cha_had

פורסם
  • מחבר

למי שלא הבין אני מנסה לחסוך את מה שרשום בתמונה -אתחול מבנה הנתונים כך שהיה מיידי ולא על ידי לולאה.

מנסה למנוע.jpg

פורסם

אתחול אותיות הוא מיותר, אתה יודע שקיימת אות אם הפוינטר אינו NULL.

כתובת האות ה-i הינה:

i'-'a'+1'

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

 

לאתחול מהיר יש שיטה שמשתמשטת ב-memset בשביל להציב 0 בכל התאים והיא די מהירה, בדר"כ לא תהיה בעיה עם זה כי NULL מוגדר כ-0.

 

למה כל אות צריכה להחזיק את האב?

 

בפועל כל מה שאתה צריך כאן הוא מערך אחד ב-tNode בגודל sigma בשביל להחזיק את כתובות ההבאים.

 

ארכיון

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

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.