Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "אחסון (אירגון) מידע DATA DATA DATA Link Link Link … …"— Presentation transcript:

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

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

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

4 הוספת איבר Pointer P-new 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 שימוש במחסנית תוכנית לבדיקת פלינדרום: w$wR דוגמא: abcda$adcba ({[]})(]
בדיקת תקינות של סוגרים: ({[]})([(){}[{}]]) קריאה לפונקציות: Prog A . x= 17 Call B B() x =7 Call C return C() . x =3 return x=17 x=7

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

17 Postfixחישוב ביטוי אלגברי
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:   * 3 4 * – 2 – 6 * 5 * - + 3 2 5 2 * 3 4 * – 2 – 6 * 5 * -

19 דוגמא 5 2 * 3 4 * – 2 – 6 * 5 * - * 2 5 * – 2 – 6 * 5 * -

20 דוגמא * – 2 – 6 * 5 * - * 4 3 10 – 2 – 6 * 5 * -

21 דוגמא – 2 – 6 * 5 * - + 12 10 – 2 – 6 * 5 * -

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

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

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

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

26 דוגמא - 30 22 -8

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

28 אלגוריתם המרה 1. אתחל מחסנית ריקה S(מחסנית האופרטורים).
2.1 אם s אופרנד - תדפיס s 2.2 אחרת: 2.1.1 כל עוד S לא ריקה ו-top(S) קודם ל-s תדפיס pop(S) push(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 שימו לב: ניתן להכניס רק N-1 איברים!!!!!!
תור במערך 1 2 N FRONT - על ראשון, REAR - על אחרון N 1 2 F=R => ריק F+k=R => kאיברים R=F-1=> מלא QUEUE Q.REAR Q.FRONT שימו לב: ניתן להכניס רק N-1 איברים!!!!!!

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


Download ppt "אחסון (אירגון) מידע DATA DATA DATA Link Link Link … …"

Similar presentations


Ads by Google