1 / 34

אחסון (אירגון) מידע

אחסון (אירגון) מידע. DATA Link. DATA Link. DATA Link. …. …. הערה : כל יחידה מכילה 2 שדות – מידע וקישור ליחידות אחרות. מטרה : אחסון ועיבוד מספר רב של יחידות מידע. מילת מפתח – יעילות !. 1. יעילות האחסון ( מקום ) – תוספת של מקום מעל ההכרחי, ניצול מקום.

dean-hood
Download Presentation

אחסון (אירגון) מידע

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. אחסון (אירגון) מידע DATA Link DATA Link DATA Link … … הערה: כל יחידה מכילה 2 שדות – מידע וקישור ליחידות אחרות. מטרה: אחסון ועיבוד מספר רב של יחידות מידע. מילת מפתח – יעילות! 1. יעילות האחסון (מקום) – תוספת של מקום מעל ההכרחי, ניצול מקום. 2. יעילות העיבוד(זמן) –זמן עבור ביצוע פעולות על המידע. כגון חיפוש, מחיקה, הכנסת, גישה לאיבר במבנה...

  2. אחסון לינארי סידרתי דרך מוכרת: מערך – אחסון סידרתי. מאפיינים: 1. מקום: מוגבל, ביזבוז כללי, חסכוני לכל יחידה. ...O(1), גישה לאיבר- O(n)2. זמן: הכנסה,הוצאה - הערה: ניתן לפתור חלק מהבעיות, אבל... מסקנה: באופן כללי לא מספק.

  3. אחסון לינארי מקושר HEAD TAIL DATA NEXT POINTER DATA NEXT POINTER DATA NULL . . .

  4. P-new הוספת איבר Pointer Start

  5. הוספת איבר Pointer Start P-new

  6. Pointer Start מחק את זה מחיקת איבר

  7. מחק את זה מחיקת איבר Pointer Start

  8. רשימה מקושרת מאפיינים: 1. מקום: לא מוגבל, אין ביזבוז באופן כללי, הוספה של מצביע. ...O(n), גישה לאיבר- O(1)2. זמן: הכנסה,הוצאה - מסקנה: שיפור מסוים ביחס למערך, הבעיה העיקרית – זמן גישה.

  9. רשימה מקושרת דו-כיוונית DATA NEXT PRE DATA NEXT PRE DATA NEXT PRE שיפור יחסי בזמן גישה, הוספת מצביע.

  10. (מחסנית) Stackמימוש 1: מילת מפתח:LIFO אינטואיציה: מחסנית רובה, ניירות על השולחן • פקודות: • 1. S <- MAKE () • 2. TOP (S) • 3. POP (S) • 4. PUSH (S) • 5. EMPTY (S) הערה: פקודות נוספות לא אפשריות

  11. i-top 1st 2nd מחסנית במערך • 1. S <- MAKE () • 2. TOP (S) • 3. POP (S) • 4. PUSH (S) 5. EMPTY (S)

  12. סיבוכיות (מחסנית במערך) בעיה: מה עושים כשמערך מתמלא? פתרון: שיטת ההכפלה Doubling 1) הקצה מקום מסוים לטבלה (n) 2) כשהמקום מתמלא והטבלה מכילה nאלמנטים: א) הקצה מקום חדש לטבלה בגודל 2n ב) העתק איברים לטבלה החדשה. ג) שחרר טבלה ישנה.

  13. סיבוכיות (מחסנית במערך) • 1) עבור פעולת ׂPER OPERATION) : INSERT) • אם אין הכפלה (O(1 • אם יש הכפלה (O(n • AMORTIZED COST • חשוב זמן ממוצע עבור פעולה במקרה הגרוע ביותר. • שווה ל: T(n)/n , כאשר (T(n הוא סכום הפעולות על nאיברים. AMORTIZED COST O(1)

  14. p-top p-top מחסנית ברשימה מקושרת p-top • 1. S <- MAKE () • 2. TOP (S) • 3. POP (S) • 4. PUSH (S) 5. EMPTY (S)

  15. Prog A . . x= 17 Call B . . B() . . x =7 . Call C return C() . x =3 . return x=7 x=17 שימוש במחסנית תוכנית לבדיקת פלינדרום:w$wR דוגמא:abcda$adcba ({[]})(] בדיקת תקינות של סוגרים: ({[]})([(){}[{}]]) קריאה לפונקציות:

  16. שימוש נוסף במחסנית יצוג ביטוי אלגברי: -+ABC: Prefixא. A+B-C: Infixב. AB+C-: Postfixג. שאלות: ?Postfix, Infix, Prefix1. מה הצורך ב- 2. מה הקשר החזותי בין השיטות? 3. איך מחסנית עוזרת בחישוב הביטוי?

  17. Postfixחישוב ביטוי אלגברי (מחסנית האופרנדים).S1. אתחל מחסנית ריקה בביטוי (משצאל לימין):s2. לכל סמל push(S,s) הוא אופרנד -s אם2.1 push(pop(S), s, pop(S)) אחרת - 2.2 ?

  18. דוגמא Infix: 2 * ( 2 + 3 ) + 3 * 4 - 5 * 6 * ( 7 - 4 - 2 ) Postfix:  2 3 + 2 * 3 4 * + 7 4 – 2 – 6 * 5 * - + 3 2 5 2 * 3 4 * + 7 4 – 2 – 6 * 5 * -

  19. דוגמא 5 2 * 3 4 * + 7 4 – 2 – 6 * 5 * - * 2 5 10 3 4 * + 7 4 – 2 – 6 * 5 * -

  20. דוגמא 10 3 4 * + 7 4 – 2 – 6 * 5 * - * 4 3 10 10 12 + 7 4 – 2 – 6 * 5 * -

  21. דוגמא 10 12 + 7 4 – 2 – 6 * 5 * - + 12 10 22 7 4 – 2 – 6 * 5 * -

  22. דוגמא 22 7 4 – 2 – 6 * 5 * - - 4 7 22 22 3 2 – 6 * 5 * -

  23. דוגמא 22 3 2 – 6 * 5 * - - 2 3 22 22 1 6 * 5 * -

  24. דוגמא 22 1 6 * 5 * - * 6 1 22 22 6 5 * -

  25. דוגמא 22 6 5 * - * 5 6 22 22 30 -

  26. דוגמא 22 30 - - 30 22 -8

  27. Postfix ל-Infixהמרה מ- הערות: 1. קדימויות של אופרטורים... 2. קדימויות של סוגריים... 3. מבנה נתונים... 4. סדר של אופרנדים...

  28. אלגוריתם המרה 1. אתחל מחסנית ריקה S(מחסנית האופרטורים). 2. לכל סמל s בביטוי (משצאל לימין): 2.1אם s אופרנד - תדפיס s 2.2 אחרת: 2.1.1 כל עוד S לא ריקה ו-top(S) קודם ל-s תדפיס pop(S) 2.1.2push(S, s) 3. כל עודSלא ריקה – תדפיס pop(S) הערה:מה לגבי סוגריים?

  29. תור - Queue In Out מילת מפתח:FIFO פקודות: 1) Q <- MAKE() 2) ENQUEUE (x,Q) : INSERT (x,END (Q),Q) 3) FRONT (Q) : RET (FIRST (Q), Q) 4) DEQUEUE (Q) : DELETE (FIRST (Q), Q) 5) EMPTY (Q) : TRUE | FALSE

  30. 1 2 N N 1 2 QUEUE Q.REAR Q.FRONT תור במערך FRONT - על ראשון, REAR - על אחרון F=R => ריק F+k=R => kאיברים R=F-1=> מלא שימו לב: ניתן להכניס רק N-1איברים!!!!!!

  31. rear front תור ברשימה מקושרת rear front 1) Q <- MAKE() 2) ENQUEUE (x,Q) : INSERT (x,END (Q),Q) 3) FRONT (Q) : RET (FIRST (Q), Q) 4) DEQUEUE (Q) : DELETE (FIRST (Q), Q) 5) EMPTY (Q) : TRUE | FALSE

  32. שימושים Queue: תור למדפסת . . .

  33. תור קדימויות In Out שינוי: הוספת מפתח k לכל איבר. הוצאת איבר נעשית לפי המפתח הזה. דוגמאות: עבודת מעבד, מערכת הפעלה, תזמון עבודותVIP, ...

  34. תור קדימויות שינויים בולטים: FRONT(Q) = Maximum(Q) (Minimum(Q)) DEQUEUE(Q) = ExtractMaximum(Q) (ExtractMinimum(Q)) איך לממש? מה סיבוכיות המימוש הנאיבי?

More Related