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

34
עעעע)עעעעעע( עעעעעDATA Link DATA Link DATA Link עעעע : הה ההההה ההההה2 הההה – הההה הההההה .ההההההה ההההה עעעע : ההההה הההההה הההה הה הה הההההה הההה. הההה הההה – עעעעעע! 1. ( הההההה הההההה עעעע – ההההה הה הההה ההה) .הההההה, ההההה הההה2. הההההה הההההה( עעע– ) ההה הההה ההההה הההההה הה ההההה. הההה ההההה, ההההה, ההההה, ...הההה ההההה ההההה

Upload: dean-hood

Post on 02-Jan-2016

27 views

Category:

Documents


1 download

DESCRIPTION

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

TRANSCRIPT

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

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

DATA

Link

DATA

Link

DATA

Link … …

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

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

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

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

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

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

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

:מאפיינים

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

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

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

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

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

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

DATANEXT

POINTER

DATANEXT

POINTER

DATANULL

HEADTAIL

. . .

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

הוספת איבר

P-new

Pointer

Start

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

הוספת איבר

P-new

Pointer

Start

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

מחיקת איברPointer

Start

מחק את זה

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

מחיקת איבר

Pointer

Start

מחק את זה

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

רשימה מקושרת

:מאפיינים

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

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

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

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

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

DATANEXT

PRE

DATANEXT

PRE

DATANEXT

PRE

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

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

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

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

LIFO מילת מפתח:

פקודות:

1. S <- MAKE )(

2. TOP )S(

3. POP )S(

4. PUSH )S(

5. EMPTY )S(

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

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

מחסנית במערך

1. S <- MAKE )(

2. TOP )S(

3. POP )S(

4. PUSH )S(

5. EMPTY )S(

1st2nd

i-top

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

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

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

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

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

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

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

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

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

PER OPERATION( : INSERT)( עבור פעולת ?1

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

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

AMORTIZED COST

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

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

AMORTIZED COST O(1)

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

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

p-top

1. S <- MAKE )(

2. TOP )S(

3. POP )S(

4. PUSH )S(

5. EMPTY )S(

p-top

p-top

Page 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

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

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

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

-+ABC: Prefixא.

A+B-C: Infixב.

AB+C-: Postfixג.

:שאלות

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

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

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

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

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

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

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

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

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

?

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

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

דוגמא

*

2

5

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

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

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

דוגמא

*

4

3

10

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

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

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

דוגמא

+

12

10

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

22 7 4 – 2 – 6 * 5 * -

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

דוגמא

-

4

7

22

22 7 4 – 2 – 6 * 5 * -

22 3 2 – 6 * 5 * -

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

דוגמא

-

2

3

22

22 3 2 – 6 * 5 * -

22 1 6 * 5 * -

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

דוגמא

*

6

1

22

22 1 6 * 5 * -

22 6 5 * -

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

דוגמא

*

5

6

22

22 6 5 * -

22 30 -

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

דוגמא

-

30

22

-8

22 30 -

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

Postfix ל-Infixהמרה מ-

:הערות

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

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

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

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

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

אלגוריתם המרה)מחסנית S . אתחל מחסנית ריקה 1

האופרטורים(.

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

s אופרנד - תדפיס s אם 2.1

אחרת:2.2

s קודם ל-top(S) לא ריקה ו-S כל עוד 2.1.1

pop(S) תדפיס

2.1.2 push(S, s)

pop(S)לא ריקה – תדפיס S . כל עוד3

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

Page 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

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

תור במערך

1 2 N

QUEUEQ.REAR Q.FRONT

N 1

2 F=R ריק <=

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

R=F-1מלא <=

FRONT,על ראשון - REARעל אחרון -

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

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

rear

תור ברשימה מקושרת

frontrear

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(

front

5( EMPTY )Q( : TRUE | FALSE

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

:Queue שימושים

תור למדפסת...

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

תור קדימויות

In Out

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

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

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

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

תור קדימויות

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

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

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

לממשאיך ?

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