אחסון (אירגון) מידע - PowerPoint PPT Presentation

dean-hood
slide1 n.
Skip this Video
Loading SlideShow in 5 Seconds..
אחסון (אירגון) מידע PowerPoint Presentation
Download Presentation
אחסון (אירגון) מידע

play fullscreen
1 / 34
Download Presentation
אחסון (אירגון) מידע
122 Views
Download Presentation

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

- - - - - - - - - - - - - - - - - - - - - - - - - - - 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)) איך לממש? מה סיבוכיות המימוש הנאיבי?