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

What are threads, What are threads? A thread, sometimes termed as a lig...

What are threads? A thread, sometimes termed as a lightweight process (LWP), is a fundamental unit of CPU utilization; this comprises a thread ID a register set and a stack and

Explain operation of time multiplexed space switching, With a neat diagram ...

With a neat diagram explain operation of time multiplexed space switching. Time division switches, an inlet or an outlet corresponded to a particular subscriber line with one s

Define compilers and interpreters with high level language, Define compiler...

Define compilers and interpreters with high level language? Both compilers and interpreters are available for most high-level languages. Though LISP and BASIC are in particular

Define the pulse-triggered (master-slave) flip-flops, Define the Pulse-Trig...

Define the Pulse-Triggered (Master-Slave) Flip-flops? The term pulse-triggered signify that data are entered into the flip-flop on the rising edge of the clock pulse, though th

Determine the example - fork-join, Determine the Example - "fork-join" ...

Determine the Example - "fork-join" module initial_fork_join(); reg clk,reset,enable,data; initial begin $monitor("‰g clk=‰b reset=‰b enable=‰b data=‰b", $time, cl

Basic logic gates, Basic logic gates Introduce the basic logic gates i...

Basic logic gates Introduce the basic logic gates in terms of a) their function, b) their circuit symbol, c) their truth table and d) their equivalent in Boolean a

Name the memory used in microprocessor systems, Name the fundamental kinds ...

Name the fundamental kinds of memory used in microprocessor systems There are three fundamental kinds of memory used in microprocessor systems - generallyknown asRAM, ROM, and

Database management system, Consider the following instance of the Students...

Consider the following instance of the Students relation, sorted by gpa. sid name login age gpa 53831 Madayan madayan@music 11 1.8 53832 Guldu guldu@music 12 2.0 53688 Smith smith

Demultiplexers, Explain briefly about demultiplexers?

Explain briefly about demultiplexers?

What are the two phases in the advancement of linux, What are the two phase...

What are the two phases in the advancement of Linux? State some Applications of Open Source Systems? Finance Educational Data Storage and Management ERP (Ent

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