אחסון (אירגון) מידע
This presentation is the property of its rightful owner.
Sponsored Links
1 / 34

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


  • 79 Views
  • Uploaded on
  • Presentation posted in: General

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

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


6251188

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

DATA

Link

DATA

Link

DATA

Link

הערה: כל יחידה מכילה 2 שדות – מידע וקישור ליחידות אחרות.

מטרה: אחסון ועיבוד מספר רב של יחידות מידע. מילת מפתח – יעילות!

1. יעילות האחסון (מקום) – תוספת של מקום מעל ההכרחי, ניצול מקום.

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


6251188

אחסון לינארי סידרתי

דרך מוכרת: מערך – אחסון סידרתי.

מאפיינים:

1. מקום: מוגבל, ביזבוז כללי, חסכוני לכל יחידה.

...O(1), גישה לאיבר- O(n)2. זמן: הכנסה,הוצאה -

הערה: ניתן לפתור חלק מהבעיות, אבל...

מסקנה: באופן כללי לא מספק.


6251188

אחסון לינארי מקושר

HEAD

TAIL

DATA

NEXT POINTER

DATA

NEXT POINTER

DATA

NULL

. . .


6251188

P-new

הוספת איבר

Pointer

Start


6251188

הוספת איבר

Pointer

Start

P-new


6251188

Pointer

Start

מחק את זה

מחיקת איבר


6251188

מחק את זה

מחיקת איבר

Pointer

Start


6251188

רשימה מקושרת

מאפיינים:

1. מקום: לא מוגבל, אין ביזבוז באופן כללי, הוספה של מצביע.

...O(n), גישה לאיבר- O(1)2. זמן: הכנסה,הוצאה -

מסקנה: שיפור מסוים ביחס למערך, הבעיה העיקרית – זמן גישה.


6251188

רשימה מקושרת דו-כיוונית

DATA

NEXT

PRE

DATA

NEXT

PRE

DATA

NEXT

PRE

שיפור יחסי בזמן גישה, הוספת מצביע.


Stack 1

(מחסנית) Stackמימוש 1:

מילת מפתח:LIFO

אינטואיציה: מחסנית רובה, ניירות על השולחן

  • פקודות:

    • 1. S <- MAKE ()

    • 2. TOP (S)

    • 3. POP (S)

    • 4. PUSH (S)

    • 5. EMPTY (S)

הערה: פקודות נוספות לא אפשריות


6251188

i-top

1st

2nd

מחסנית במערך

  • 1. S <- MAKE ()

  • 2. TOP (S)

  • 3. POP (S)

  • 4. PUSH (S)

5. EMPTY (S)


6251188

סיבוכיות (מחסנית במערך)

בעיה: מה עושים כשמערך מתמלא?

פתרון: שיטת ההכפלה Doubling

1) הקצה מקום מסוים לטבלה (n)

2) כשהמקום מתמלא והטבלה מכילה nאלמנטים:

א) הקצה מקום חדש לטבלה בגודל 2nב) העתק איברים לטבלה החדשה.ג) שחרר טבלה ישנה.


6251188

סיבוכיות (מחסנית במערך)

  • 1) עבור פעולת ׂPER OPERATION) : INSERT)

    • אם אין הכפלה (O(1

    • אם יש הכפלה (O(n

  • AMORTIZED COST

  • חשוב זמן ממוצע עבור פעולה במקרה הגרוע ביותר.

  • שווה ל: T(n)/n , כאשר (T(n הוא סכום הפעולות על nאיברים.

AMORTIZED COST O(1)


6251188

p-top

p-top

מחסנית ברשימה מקושרת

p-top

  • 1. S <- MAKE ()

  • 2. TOP (S)

  • 3. POP (S)

  • 4. PUSH (S)

5. EMPTY (S)


6251188

Prog A

.

.

x= 17

Call B

.

.

B()

.

.

x =7

.

Call C

return

C()

.

x =3

.

return

x=7

x=17

שימוש במחסנית

תוכנית לבדיקת פלינדרום:w$wR

דוגמא:abcda$adcba

({[]})(]

בדיקת תקינות של סוגרים:

({[]})([(){}[{}]])

קריאה לפונקציות:


6251188

שימוש נוסף במחסנית

יצוג ביטוי אלגברי:

-+ABC: Prefixא.

A+B-C: Infixב.

AB+C-: Postfixג.

שאלות:

?Postfix, Infix, Prefix1. מה הצורך ב-

2. מה הקשר החזותי בין השיטות?

3. איך מחסנית עוזרת בחישוב הביטוי?


Postfix

Postfixחישוב ביטוי אלגברי

(מחסנית האופרנדים).S1. אתחל מחסנית ריקה

בביטוי (משצאל לימין):s2. לכל סמל

push(S,s) הוא אופרנד -s אם2.1

push(pop(S), s, pop(S)) אחרת - 2.2

?


6251188

דוגמא

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 * -


6251188

דוגמא

5 2 * 3 4 * + 7 4 – 2 – 6 * 5 * -

*

2

5

10 3 4 * + 7 4 – 2 – 6 * 5 * -


6251188

דוגמא

10 3 4 * + 7 4 – 2 – 6 * 5 * -

*

4

3

10

10 12 + 7 4 – 2 – 6 * 5 * -


6251188

דוגמא

10 12 + 7 4 – 2 – 6 * 5 * -

+

12

10

22 7 4 – 2 – 6 * 5 * -


6251188

דוגמא

22 7 4 – 2 – 6 * 5 * -

-

4

7

22

22 3 2 – 6 * 5 * -


6251188

דוגמא

22 3 2 – 6 * 5 * -

-

2

3

22

22 1 6 * 5 * -


6251188

דוגמא

22 1 6 * 5 * -

*

6

1

22

22 6 5 * -


6251188

דוגמא

22 6 5 * -

*

5

6

22

22 30 -


6251188

דוגמא

22 30 -

-

30

22

-8


Postfix infix

Postfix ל-Infixהמרה מ-

הערות:

1. קדימויות של אופרטורים...

2. קדימויות של סוגריים...

3. מבנה נתונים...

4. סדר של אופרנדים...


6251188

אלגוריתם המרה

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)

הערה:מה לגבי סוגריים?


Queue

תור - 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


6251188

1

2

N

N

1

2

QUEUE

Q.REAR

Q.FRONT

תור במערך

FRONT - על ראשון,

REAR - על אחרון

F=R => ריק

F+k=R => kאיברים

R=F-1=> מלא

שימו לב: ניתן להכניס רק N-1איברים!!!!!!


6251188

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


Queue1

שימושים Queue:

תור למדפסת

.

.

.


6251188

תור קדימויות

In

Out

שינוי: הוספת מפתח k לכל איבר.

הוצאת איבר נעשית לפי המפתח הזה.

דוגמאות: עבודת מעבד, מערכת הפעלה, תזמון עבודותVIP, ...


6251188

תור קדימויות

שינויים בולטים:

FRONT(Q) = Maximum(Q) (Minimum(Q))

DEQUEUE(Q) = ExtractMaximum(Q) (ExtractMinimum(Q))

איך לממש?

מה סיבוכיות המימוש הנאיבי?


  • Login