Ֆիքսված չափի stack (պահունակ)
Ենթադրենք՝ գոյություն ունի ծրագրավորմանը նվիրված ուսուցման հարթակ, իսկ դուք աշխատում եք այդ ընկերության զարգացման բաժնում: Մշակվում է դաս՝ բացառությունների մշակման և տվյալների կառուցվածքի ստեղծման վերաբերյալ, և ձեզ խնդրել են ստեղծել Stack class Python-ում: Այս Stack-ն ունի ֆիքսված չափ և երեք գործողություն.
push(item)
- Ավելացնում է տարր պահունակի վերևում:
pop()
- Հեռացնում է պահունակի վերին տարրը և վերադարձնում այն:
peek()
- վերադարձնում է պահունակի վերին տարրը՝ առանց այն հեռացնելու:
Սակայն ձեր Stack class-ը պետք է ունենա հետևյալ սահմանափակումները.
push (item)
գործողությունը պետք է raise անիStackOverflowError
բացառություն, եթե փորձում եք որևէ տարր ավելացնել ամբողջական պահունակին:
pop()
գործողությունը պետք է raise անիStackEmptyError
բացառություն, եթե փորձում եք տարր դուրս հանել դատարկ պահունակից:
StackOverflowError
-ը և StackEmptyError
-ը պետք է ժառանգեն Exception
-ից և չընդունեն արգումենտներ իրենց __init__
մեթոդներում:Մուտք | Ելք |
stack = Stack(3); stack.push('A'); stack.push('B'); stack.push('C'); stack.push('D'); print(stack.peek()); print(stack.pop()); print(stack.pop()); print(stack.pop()); print(stack.pop()) | StackOverflowError: The stack is full
C
C
B
A
StackEmptyError: The stack is empty
|
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB