Function makestk-predicate function emptystk, Computer Engineering

Assignment Help:

1. Create the following ADTs.

(a) Write the constructor function makestk, predicate function emptystk and mutator functions pushstk and popstk:

i. makestk returns a new stack in the form of a tagged tuple: ('stack',[]).

e.g. >>> cellstk=makestk()

>>> cellstk

('stack', [])

ii. emptystk returns True or False depending on whether the given stack is empty or not.

e.g. >>> emptystk(cellstk)

True

iii. pushstk accepts a stack and an element, and adds the element to the stack at position 0 (see part (b) below for the creation of cell0).

e.g. >>> pushstk(cellstk,cell0)

>>> cellstk

('stack', [('cell', (0, 0), ['t', 'b', 'r', 'l'])])

iv. popstk removes the element at position 0 of the given stack.

e.g. >>> popstk(cellstk)

('cell', (0, 0), ['t', 'b', 'r', 'l'])

>>> cellstk

('stack', [])

(b) Write a constructor function called makecell, accessor functions getx, gety and getwalls, and mutator functions removetw, removebw, removerw, removelw.

i. makecell accepts a tuple which consists of the x and y co-ordinate of the cell being created. It returns a cell in the form of a tagged tuple:

('cell',(x,y),['t','b','r','l']).

The list represents the four walls of the cell: top, bottom, right and left.

e.g. >>> cell0=makecell((0,0))

>>> cell0

('cell', (0, 0), ['t', 'b', 'r', 'l'])

ii. getx and gety return the x and y co-ordinates (respectively) of a given cell.

e.g. >>> getx(cell0)

0

iii. getwalls returns the list of walls that are intact for a given cell

e.g. >>> getwalls(cell0)

['t', 'b', 'r', 'l']

iv. remove?w removes the associated wall from the list of walls of a given cell.

e.g. >>> removetw(cell0)

>>> cell0

('cell', (0, 0), ['b', 'r', 'l'])


Related Discussions:- Function makestk-predicate function emptystk

Three firm capabilities that are performance in e-commerce, Three firm capa...

Three firm capabilities that are critical for superior firm performance in e-commerce are:- 1.  Information technology capability,  2.  Strategic flexibility, and  3.  Tr

Explain busy tone in strowger telephony, Explain Busy tone in strowger tele...

Explain Busy tone in strowger telephony. Busy tone pattern is demonstrated in figure. This is a bursty 400 Hz signal with silence era in between. The burst and silence durati

Rational performance of an agent - artificial intelligence, Rational perfor...

Rational performance of an agent - artificial intelligence: To summarize, an agent takes input from its violence and affects that environment. The rational performance of an a

Operator, write algorithm and draw flowchart for exchange the values of two...

write algorithm and draw flowchart for exchange the values of two variables.

Do you provide storage and destruction services, Do you provide storage and...

Do you provide storage and destruction services? We will assess your storage and destruction needs as part of our evaluation process. Our destruction services can be performed

How do you make an append query, Append query can be used if you would like...

Append query can be used if you would like to add new rows of data to an already active table. The process of making an append query follows these steps they are. ? Basic step

Explain concurrent sharing, Explain Concurrent Sharing Here a number of...

Explain Concurrent Sharing Here a number of programs that may share a file simultaneously. While this is the case, it is necessary to prevent mutual interference among them. Th

Explain standard set of procedure to complete a call process, Explain a s...

Explain a standard set of procedure for completing a local telephone call or call processing. Completing a local telephone call among two subscribers connected to the similar

Why should you use bugzilla?, Bugzilla can dramatically enhance the product...

Bugzilla can dramatically enhance the productivity and accountability of individual employees by giving a documented workflow and positive feedback for good performance.

What is edi (electronic data interchange), What is EDI (Electronic Data Int...

What is EDI (Electronic Data Interchange)? EDI: Electronic Data Interchange (EDI) is used by organizations for transactions that happen on regular basis to a pre-determined for

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd