فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix...

32
Stacks and Queues فػلم س: پطت غفضس هس: ط ضیبىزا آج زستیبضضس هس: علیی عطفب فطزBy: Shohreh Ajoudanian, Ph.D. Candidate Teacher assistant: Ali Erfani Fard جف آثبز احس هی آظاز اسطگب زا ظهستبى92

Transcript of فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix...

Page 1: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

Stacks and Queues

غف پطت :سم فػل آجزایبى ضط :هسضس

فطز عطفبی علی :هسضس زستیبض

By: Shohreh Ajoudanian, Ph.D. Candidate

Teacher assistant: Ali Erfani Fard

زاطگب آظاز اسالهی احس جف آثبز

92ظهستبى

Page 2: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

پطت يک اظ حصف جبيگصاضي ک ثبضس هی ضس هطتت بي لیست اظ ذبغی حبلت ب پطت•

.گیطز هی غضت ، ضز هی بهیس (ثبال) top ک آى سوت

.ضز هی بهیس یع LIFO (Last-In , First-Out) لیست يک پطت•

A

B

C Top

Top

Top

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 2

Page 3: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

پطت

bottom

top

C

A

B

D

E

F

ي پاييىی عىصز ، ماوىد ای پشت در .باشد می بااليی عىصز

10,..., naaS0a1na

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 3

Page 4: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

(ADT)ع زاز ي اتعاعی هسلسبظي : هثبلADT اظ يک سیستن ذطيس

: فطش سبز فطش ستس /زاز بي شذیط ضس، سفبضضبت ذطيس

عولیبت بي هجز عجبضتس اظ:

• order buy(stock, shares, price)

• order sell(stock, shares, price)

• void cancel(order)

ضعیت بي ذغب فطش يک کبالي بهجز/ذطيس• کسل کطزى يک سفبضش بهجز•

abstract data type (ADT) يک هفم اتعاعی اظ

.سبذتوبى زاز است

ADT هاضز ظيط ضا هطرع هی کس: زاز بي شذیط ضس

عولیبت ثط ضي زاز ب

ضعیت ذغببي هطثط ث عولیبت ب

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 4

Page 5: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

Stack ADT

•Stack ADT عاصش تا ع دلخای سا رخیش هی کذ

عولیات دسج حزف دس آى، اص قاى •

last-in first-out پیشی هی کذ.

هاذ استا ای اص تطقاب ای سی ن چیذ • .ضذ است

:تاتع اصلی پطت •– push(object)

یک عصش جذیذ دسج هی کذ – object pop()

آخشیي عصش سا حزف ، هقذاس آى سا تشهی گشداذ

:تاتع کوکی پطت •– object top():

عصش تاالی پطت سا تذى حزف کشدى، تشهی گشداذ

– integer size():

تعذاد عاصش رخیش ضذ سا تشهی گشداذ

– boolean isEmpty():

طاى هیذذ ک آیا پطت خالی است یا

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 5

Page 6: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

Stack Interface in Java •Stack Interface جبا ، هطبث زض

Stack ADT است.

ثبيس کالس •EmptyStackException زض آى

. تعطيف ضز

هجز زض کتبثرب بي Stackثب کالس • . هتفبت است( java.util.Stack)جبا

public interface Stack {

public int size();

public boolean isEmpty();

public Object top() throws EmptyStackException;

public void push(Object o);

public Object pop() throws EmptyStackException;

}

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 6

Page 7: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

Exceptions استثبب

زض Stack ADT عولیبت بي pop top ثزى ذبلی غضت زض

.ضس اجطا وی تاس پطت،

عولیبت اجطاي ثبضس، ذبلی پطت اگط pop top استثبء فطاذای ثبعث

EmptyStackException .هی ضز

بي عولیبت اجطاي زض ADT ک زس ضخ ذغب است هوکي گبی

. هی گيس استثبء ب آى ث

ک بيی عولیبت تسظ استثبب تلیس ضس، اجطا وی تاس

.ضس هی

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 7

Page 8: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

ثطبه بيی ک اظ پطت استفبز هی کس

هستقین بي ثطبه ي ة هطضگطبي زض ضس زيس غفحبت تبضيرچ

قسوت Undo هتي يطايطگط بي ثطبه زض

جبا هجبظي هبضیي زض ضس فطاذای هتسبي سلسل

هستقین غیط بي ثطبه ب الگضيتن زض کوکی زاز سبذتوبى

ب زاز سبذتوبى زض زيگط بي هؤلف

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 8

Page 9: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

ي هتس زض JVMپطت ث ضا فعبل هتسبي سلسل (JVM) جبا هجبظي هبضیي•

ي .هی کس کتطل پطت سیل

ضبهل قبثی JVM هی ضز، فطاذای هتس يک ک گبهی• :هی کس push پطت زض ضا ظيط هاضز

ثبظگطتی هقبزيط هحلی هتغیطبي–

.هی کس پیگیطي ضا ضس اجطا زستضات ک ثطبه، ضوبضس ي–

pop پطت اظ چبضچة ايي يبثس، هی ذبتو هتس ک ظهبی• است، پطت top زض ک هتسي ث ثطبه کتطل هی ضز

.هی گطزز ثبظ

فطان ضا ثبظگطتی هتسبي اظ استفبز اهکبى وچیي• .هی کس

main( ) { int i = 5;

foo(i);

}

foo(int j) {

int k;

k = j+1;

bar(k);

}

bar(int m) {

}

bar PC = 1

m = 6

foo PC = 3

j = 5

k = 6

main PC = 2 i = 5

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 9

Page 10: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

پطت بي آضاي اي

يک ضا سبز ثطاي پیبز سبظي •Stack ADT استفبز اظ آضاي است.

.عبغط اظ چپ ث ضاست اضبف هی ضس•

پطت، topاسيس عػط هجز زض • .تسظ يک هتغیط گ زاضي هی ضز

S 0 1 2 t

Algorithm size( ) return t + 1

Algorithm pop( ) if isEmpty( ) then

throw EmptyStackException

else

t t 1

return S[t + 1]

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 10

Page 11: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

(ازاه)پطت بي آضاي اي کس، هی شذیط ضا پطت عبغط ک اي آضاي•

.ضز پط است هوکي

استثبءpush عولیبت غضت، ايي زض•FullStackException کس هی تلیس ضا.

هحسزيت زاضاي آضاي تسظ پطت سبظي پیبز– .است

سبظي پیبز ع ايي زض فقظ هحسزيت، ايي– Stack ADT ذز ث هطثط زاضز جز .یست

S 0 1 2 t

Algorithm push(o)

if t = S.length 1 then

throw FullStackException

else

t t + 1

S[t] o

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 11

Page 12: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

کبضايی هحسزيت ب

کبضايی: تعساز n است سبظي شذیط قبثل پطت زض عػط.

ثب است ثطاثط ضس اضغبل فضبي O(n)

ظهبى هست زض عولیبت ط O(1) هی ضز اجبم.

ب هحسزيت: یست تغییط قبثل ضز تعییي قجل اظ ثبيس پطت سبيع حساکثط.

استثبء يک تلیس ثبعث است، ضس پط ک اي پطت ث جسيس عػط کطزى اضبف (Exception) زض ذبظ .هی ضز سبظي پیبز

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 12

Page 13: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

Array-based Stack in Java

public class ArrayStack implements Stack {

// holds the stack elements

private Object S[ ];

// index to top element

private int top = -1;

// constructor

public ArrayStack(int capacity) {

S = new Object [capacity] ; }

public Object pop()

throws EmptyStackException {

if isEmpty()

throw new EmptyStackException

(“Empty stack: cannot pop”);

Object temp = S[top];

// facilitates garbage collection

S[top] = null;

top = top – 1;

return temp;

}

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 13

Page 14: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

Array-based Stack in Java public void push ( Object Obj )

throws FullStackExeption {

if ( size() == capacity )

throw new FullStackExeption

(“Stack is full.”) ;

S[++top] = Obj ;

}

public Object top () {

return S [top] ;

}

public int size () {

return ( top + 1 ) ;

}

public boolean isEmpty () {

return ( top > 0 ) ;

}

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 14

Page 15: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

کبضثطزبي پطت

ثبظگطتی بي ثطبه•

پطاتعب تغجیق•

هحبسجبتی عجبضات هحبسج•

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 15

Page 16: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

ثطبه بي ثبظگطتی

زض آى اظ استفبز پطت، کبضثطزبي اظ يکی Trace است ثبظگطتی بي ثطبه کطزى.

ي يک .هی ضز حل کچکتط هسبئل ث ضسى ضکست ثب ثبظگطتی، هسئل

زاضس اغلی يژگی ز ثبظگطتی، تاثع :

کچکتط آضگهبى ثب الجت هی ظس، غسا ضا ذزش تبثع

زاضز جز ب فطاذای اتوبم جت ضطط يک

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 16

Page 17: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

ثطبه بي ثبظگطتی

ي سبظي، هطتت بي الگضيتن اظ بيی و ... بي ثطج فیجبچی، سطي م،.م.ة هحبسج

.ستس ثبظگطتی بي ثطبه

ي .است ثبظگطتی بي ثطبه ثطاي هثبل تطيي هتسال فبکتضيل، هحبسج

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 17

int fact (int n) {

if (n == 0 )

return 1;

return ( n * fact( n-1) ) ;

}

Page 18: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

ثطبه بي ثبظگطتی

. کیس هحبسج ضا F(3,6) ذطجی ظيط، تبثع زض : هثبل

: حل

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 18

Public Static int F ( int m , int n ) {

if ( m == 1 || n == 0 || m == n )

return 1;

else

return F ( m-1 , n ) + F ( m-1 , n-1 ) ;

}

F(3,6)

F(2,6) + F(2,5)

F(1,6) + F(1,5) F(1,5) + F(1,4)

F(2,6) = F(1,6) + F (1,5)

F(1,6) = 1

F(3,6) = F(2,6) + F(2,5)

F(1,5) = 1

F(2,5) = F(1,5) + F (1,4)

F(1,4) = 1

F(3,6) = 4

1 1

2 2 4: پبسد

F(1,5) = 1

Page 19: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

تغجیق پطاتعب

ثبضس زاضت هغبثقت ” [ ” يب ” } ” ، ” ) ” ثب ثبيس ] “ ” يب “ { ” ، “ ( ” ط. زضست : ( )(( )){([( )])}

زضست : ((( )(( )){([( )])}

غلظ : )(( )){([( )])}

غلظ : ({[ ])}

غلظ : (

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 19

Page 20: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

Parentheses Matching Algorithm Algorithm ParenMatch(X,n):

ي : inputعسز يب هحبسجبتی عولگط هتغیط، ، ثسي گط بي وبز ضبهل ، X تبيی n آضاي ي . هی گطزاس ثط true ثبضس زاضت تغبثق ن ثب ثسي گط وبزبي توبم اگط تب اگط Output : . ثبضس ذبلی هی تاس Sآضاي

for i=0 to n-1 do

if X[i] is an opening grouping symbol then

S.push(X[i])

else if X[i] is a closing grouping symbol then

if S.isEmpty() then

return false {nothing to match with}

if S.pop() does not match the type of X[i] then

return false {wrong type}

if S.isEmpty() then

return true {every symbol matched}

else

return false {some symbols were never matched}

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 20

Page 21: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

عجبضات هحبسجبتیاضظيبثی جبي ث وی کس استفبز هیبسي ثبظوبيی اظ عجبضات اضظيبثی ثطاي کبهپبيلطب•

ثطس هی کبض ث ضا پسسي ثبظوبيی آى

Postfix:

no parentheses,

no precedence

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 21

Page 22: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

postfixث infixتجسيل زستی عجبضت .کین هی پشاتضگزاسی کاهل طس ت عولگشا الیت ت تج تا سا عثاست اتتذا1.

.ساصین هی هتقل خدش پشاتض ساست سوت ت سا عولگش ش2.

.کین هی حزف سا پشاتضا توام3.

.ضد هی ظاش اش هشتط عولذای اص قثل عولگش ش prefix سش دس تشتیة ویي ت•

.داسین عولگش حتوا چپ سوت دس prefix دس عولگش حتوا ساست سوت دس postfix دس :کت•

(هثال

Infix: a+b*c^d

Postfix: abcd ^*+

Prefix: +a*b^cd

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 22

Page 23: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

هثبل

• Infix: (a+b) *(a-b)+x

• Postfix: ab+ab-*x+

• Prefix: +*+ab-abx

• Infix: (a+b*c) / (d*e-f)

• Postfix: abc*+de*f-/

• Prefix: /+a*bc-*def

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 23

Page 24: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

تکلیف

• Infix: ((((a/b)-c)+(d*e)) – (a*e))

• Postfix: ?

• Prefix: ?

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 24

Page 25: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

پاسخ عبارت است اس

postfixعجبضات اضظيبثی

string: 6 2/3-4 2*+

STACK

0

1

2

می شدرشت اوجام ريی فقط يک پيمايش اس چپ ب راست اس

top

6 2 / 3 - 4 2 * +

عملگز ويست آن را ب پشت اضاف کىيد

6

شودtop+1اکنون بايد

عملگز ويست آن را ب پشت 2 اضاف کىيد

عملگز است دي عملود اس پشت حذف کىيد

شودtop-2اکنون بايد

حاصل عبارت را با عملگز مزبط ب دست آيرد ي در پشت قزار ديد

6/2

عملگز ويست آن را ب پشت 3 اضاف کىيد

عملگز است دي عملود اس پشت حذف کىيد

6/2-3

عملگز ويست آن را ب پشت 4 اضاف کىيد

عملگز ويست آن را ب پشت اضاف کىيد

2 عملگز است دي عملود اس

2*4 پشت حذف کىيدعملگز است دي عملود اس

پشت حذف کىيد

6/2-3+4*2

پشت را خالی . پايان رشت .کزد ي پاسخ را ارائ ديد

شودtop-1اکنون بايد

6 / 2 - 3 + 4 * 2

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 25

Page 26: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

prefixاضظيبثی عجبضات .ضد هی پیص چپ ت ساست اص عثاست prefix عثاسات دس•

هعشفی لکاسیچ ام ت لستای داى سیاضی سا پیطذی وایص ک آجایی اص• ت تشتیة ویي ت .گیذ هی یض polish سش prefix سش ت است کشد

postfix هعکس لستای سش (Reverse Polish Notation – RPN) یض .ضد هی گفت

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 26

Page 27: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

تبديل کنيدپسوندی رشته زير را به فرم

a / b - c + d * e - a * c

کىيدپزاوتشگذاری عبارت را ب صرت کامل ( 1

a / b - c + d * e - a * c

((((a / b) - c) + (d * e)) - (a * c))

ی ( 2 .شود میعملگزا جايگشيه پزاوتش راست متىاظز خد م ((((a / b) - c) + (d * e)) - (a * c))

.پزاوتشا را حذف کىيدی م( 3

a b / c - d e * + a c * - يکسان استپسوندی و ميانوندی ترتيب عملوندها در فرم

/ - *

+ * -

پسسيث عجبضتبي هیبسي تجسيل

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 27

Page 28: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

تجسيل عجبضتبي هیبسي ث پسسي پسسي ث هیبسي ضضت تجسيل الگضيتن•

فطضیبت–

– operators: (, ), +, -, *, /, %

– operands: single digit integer or variable of one character

کیس پیوبيص ضاست ث چپ اظ ضا ضضت.

ضس هی ضت ذطجی زض هستقیوب عولسب.

آب پطت زاذل اليت ک هبزاهی پطت زاذل عولگطبي in-stack precedence (isp) اظ است incoming precedence (icp) جسيس عولگط ضزي اليت هسبي يب ثعضگتط .ضس هی ذبضج پطت

‘(‘ زاضاي isp پبيیي icp است ثبال.

ث تجسيل زض prefix ثبضس ن ضي پطت زض ک ساضز اضکبلی هسبي تقسم هضز زض. By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 28

Page 29: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

a+*c

abc*+

a*(b+c)*d abc+*d*

مثال

پسسيث عجبضتبي هیبسي تجسيل

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 29

Page 30: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

هثبل1. a+ b*(c/(d+e))*f

2. a+b/c^d-e*k

.کیس هحبسج ضا پطت عل حساکثط3.

(x*(a+b*c)-d)

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 30

Page 31: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

تکلیف صست ت سا اعذاد اص لیستی پطت د کوک ت ک تیسیذ Java صتاى ت ای تشاه•

.(عصش 20 حذاکثش) کذ هشتة صعدی

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 31

Page 32: فغ ٍ ِتطپ :مَس لػفresearch.iaun.ac.ir/pd/ajoudanianold/pdfs/HomeWork_1490.pdfpostfix ِث infix تضبجع یتسز ليسجت.نیٌک یه یسازگضتًاشپ لهاک

By: Shohreh Ajoudanian Email: [email protected] TA: Ali Erfanifard

Data Structures

By: Shohreh Ajoudanian, Ph.D. Candidate, Ali Erfanifard 32