from copy import deepcopy     class Stack:   def__init__(self): """ ------------------------------------------------------- Initializes an is_empty stack. Data is stored in a Python list. Use: s = Stack() ------------------------------------------------------- Returns: a new Stack object (Stack) ------------------------------------------------------- """ self._values = []   defis_empty(self): """ ------------------------------------------------------- Determines if the stack is empty. Use: b = s.is_empty() ------------------------------------------------------- Returns: True if the stack is empty, False otherwise ------------------------------------------------------- """   empty = True if len(self._values) > 0: empty = False return empty   defpush(self, value): """ ------------------------------------------------------- Pushes a copy of value onto the top of the stack. Use: s.push(value) ------------------------------------------------------- Parameters: value - a data element (?) Returns: None ------------------------------------------------------- """   self._values.append(deepcopy(value)) return   defpop(self): """ ------------------------------------------------------- Pops and returns the top of stack. The value is removed from the stack. Attempting to pop from an empty stack throws an exception. Use: value = s.pop() ------------------------------------------------------- Returns: value - the value at the top of the stack (?) ------------------------------------------------------- """ assert len(self._values) > 0, "Cannot pop from an empty stack"   value = self._values.pop() return value   defpeek(self): """ ------------------------------------------------------- Returns a copy of the value at the top of the stack. Attempting to peek at an empty stack throws an exception. Use: value = s.peek() ------------------------------------------------------- Returns: value - a copy of the value at the top of the stack (?) ------------------------------------------------------- """ assert len(self._values) > 0, "Cannot peek at an empty stack"   value = deepcopy(self._values[-1]) return value     def__iter__(self): """ FOR TESTING ONLY ------------------------------------------------------- Generates a Python iterator. Iterates through the stack from top to bottom. Use: for v in s: ------------------------------------------------------- Returns: value - the next value in the stack (?) ------------------------------------------------------- """ for value inself._values[::-1]: yield value   defsplit_alt(self): """ ------------------------------------------------------- Splits the source stack into separate target stacks with values alternating into the targets. At finish source stack is empty. Use: target1, target2 = source.split_alt() ------------------------------------------------------- Returns: target1 - contains alternating values from source (Stack) target2 - contains other alternating values from source (Stack) ------------------------------------------------------- """ i = 0 length = len(self._values) target1 = Stack() target2 = Stack()   while i < length: if (i % 2) == 0: target1.push(self._values[(len(self._values) - 1)]) self._values.pop() else: target2.push(self._values[(len(self._values) - 1)]) self._values.pop() i += 1 return target1, target2 defreverse(self): """ ------------------------------------------------------- Reverses the contents of the source stack. Use: source.reverse() ------------------------------------------------------- Returns: None ------------------------------------------------------- """ i = 0 list = [] length = len(self._values)   while i < length: list.append(self._values[0]) self._values.pop(0) i += 1 i = 0 length = len(list) while i < length: self._values.append(list[(len(list) - 1)]) list.pop(len(list) - 1) i += 1 return This is for stack array

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

from copy import deepcopy

 

 

class Stack:

 

def__init__(self):

"""

-------------------------------------------------------

Initializes an is_empty stack. Data is stored in a Python list.

Use: s = Stack()

-------------------------------------------------------

Returns:

a new Stack object (Stack)

-------------------------------------------------------

"""

self._values = []

 

defis_empty(self):

"""

-------------------------------------------------------

Determines if the stack is empty.

Use: b = s.is_empty()

-------------------------------------------------------

Returns:

True if the stack is empty, False otherwise

-------------------------------------------------------

"""

 

empty = True

if len(self._values) > 0:

empty = False

return empty

 

defpush(self, value):

"""

-------------------------------------------------------

Pushes a copy of value onto the top of the stack.

Use: s.push(value)

-------------------------------------------------------

Parameters:

value - a data element (?)

Returns:

None

-------------------------------------------------------

"""

 

self._values.append(deepcopy(value))

return

 

defpop(self):

"""

-------------------------------------------------------

Pops and returns the top of stack. The value is removed

from the stack. Attempting to pop from an empty stack

throws an exception.

Use: value = s.pop()

-------------------------------------------------------

Returns:

value - the value at the top of the stack (?)

-------------------------------------------------------

"""

assert len(self._values) > 0, "Cannot pop from an empty stack"

 

value = self._values.pop()

return value

 

defpeek(self):

"""

-------------------------------------------------------

Returns a copy of the value at the top of the stack.

Attempting to peek at an empty stack throws an exception.

Use: value = s.peek()

-------------------------------------------------------

Returns:

value - a copy of the value at the top of the stack (?)

-------------------------------------------------------

"""

assert len(self._values) > 0, "Cannot peek at an empty stack"

 

value = deepcopy(self._values[-1])

return value

 

 

def__iter__(self):

"""

FOR TESTING ONLY

-------------------------------------------------------

Generates a Python iterator. Iterates through the stack

from top to bottom.

Use: for v in s:

-------------------------------------------------------

Returns:

value - the next value in the stack (?)

-------------------------------------------------------

"""

for value inself._values[::-1]:

yield value

 

defsplit_alt(self):

"""

-------------------------------------------------------

Splits the source stack into separate target stacks with values

alternating into the targets. At finish source stack is empty.

Use: target1, target2 = source.split_alt()

-------------------------------------------------------

Returns:

target1 - contains alternating values from source (Stack)

target2 - contains other alternating values from source (Stack)

-------------------------------------------------------

"""

i = 0

length = len(self._values)

target1 = Stack()

target2 = Stack()

 

while i < length:

if (i % 2) == 0:

target1.push(self._values[(len(self._values) - 1)])

self._values.pop()

else:

target2.push(self._values[(len(self._values) - 1)])

self._values.pop()

i += 1

return target1, target2

defreverse(self):

"""

-------------------------------------------------------

Reverses the contents of the source stack.

Use: source.reverse()

-------------------------------------------------------

Returns:

None

-------------------------------------------------------

"""

i = 0

list = []

length = len(self._values)

 

while i < length:

list.append(self._values[0])

self._values.pop(0)

i += 1

i = 0

length = len(list)

while i < length:

self._values.append(list[(len(list) - 1)])

list.pop(len(list) - 1)

i += 1

return

This is for stack array

 

-
# Imports
from Stack_array import Stack
# Constants
BAL = 'is balanced'
NO_MATCH = 'mismatched brackets'
M_RIGHT = 'too many right brackets'
M_LEFT = 'too many left brackets'
def balanced (string):
Determines if a string contains has balanced brackets or not. Non-bracket
characters are ignored. Uses a Stack. Brackets include {}, [], (), ↔.
Use: is_balanced balanced (string)
Parameters:
Returns:
||||||
string the string to test (str)
=
is_balanced (string)
BALANCED if the brackets in string are is_balanced
NO_MATCH if the brackets in string are mismatched
MORE_RIGHT if there are more right brackets than left in string
MORE_LEFT if there are more left brackets than right in string
return
Transcribed Image Text:- # Imports from Stack_array import Stack # Constants BAL = 'is balanced' NO_MATCH = 'mismatched brackets' M_RIGHT = 'too many right brackets' M_LEFT = 'too many left brackets' def balanced (string): Determines if a string contains has balanced brackets or not. Non-bracket characters are ignored. Uses a Stack. Brackets include {}, [], (), ↔. Use: is_balanced balanced (string) Parameters: Returns: |||||| string the string to test (str) = is_balanced (string) BALANCED if the brackets in string are is_balanced NO_MATCH if the brackets in string are mismatched MORE_RIGHT if there are more right brackets than left in string MORE_LEFT if there are more left brackets than right in string return
Expert Solution
steps

Step by step

Solved in 4 steps with 2 images

Blurred answer
Knowledge Booster
Stack
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education