אחסון (אירגון) מידע
Download
1 / 34

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


  • 111 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' אחסון (אירגון) מידע' - dean-hood


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
אחסון (אירגון) מידע

DATA

Link

DATA

Link

DATA

Link

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

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

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

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


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

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

מאפיינים:

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

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

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

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


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

HEAD

TAIL

DATA

NEXT POINTER

DATA

NEXT POINTER

DATA

NULL

. . .


P-new

הוספת איבר

Pointer

Start


הוספת איבר

Pointer

Start

P-new


Pointer

Start

מחק את זה

מחיקת איבר


מחק את זה

מחיקת איבר

Pointer

Start


רשימה מקושרת

מאפיינים:

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

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

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


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

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)

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


i-top

1st

2nd

מחסנית במערך

  • 1. S <- MAKE ()

  • 2. TOP (S)

  • 3. POP (S)

  • 4. PUSH (S)

5. EMPTY (S)


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

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

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

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

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

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


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

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

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

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

  • AMORTIZED COST

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

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

AMORTIZED COST O(1)


p-top

p-top

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

p-top

  • 1. S <- MAKE ()

  • 2. TOP (S)

  • 3. POP (S)

  • 4. PUSH (S)

5. EMPTY (S)


Prog A

.

.

x= 17

Call B

.

.

B()

.

.

x =7

.

Call C

return

C()

.

x =3

.

return

x=7

x=17

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

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

דוגמא:abcda$adcba

({[]})(]

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

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

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


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

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

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

?


דוגמא

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


דוגמא

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

*

2

5

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


דוגמא

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

*

4

3

10

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


דוגמא

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

+

12

10

22 7 4 – 2 – 6 * 5 * -


דוגמא

22 7 4 – 2 – 6 * 5 * -

-

4

7

22

22 3 2 – 6 * 5 * -


דוגמא

22 3 2 – 6 * 5 * -

-

2

3

22

22 1 6 * 5 * -


דוגמא

22 1 6 * 5 * -

*

6

1

22

22 6 5 * -


דוגמא

22 6 5 * -

*

5

6

22

22 30 -


דוגמא

22 30 -

-

30

22

-8


Postfix infix
Postfix ל-Infixהמרה מ-

הערות:

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

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

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

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


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

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


1

2

N

N

1

2

QUEUE

Q.REAR

Q.FRONT

תור במערך

FRONT - על ראשון,

REAR - על אחרון

F=R => ריק

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

R=F-1=> מלא

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


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:

תור למדפסת

.

.

.


תור קדימויות

In

Out

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

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

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


תור קדימויות

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

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

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

איך לממש?

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


ad