master > master: code py - refactoring
This commit is contained in:
16
code/python/src/models/stacks/__init__.py
Normal file
16
code/python/src/models/stacks/__init__.py
Normal file
@@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# IMPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
from src.models.stacks.stack import *;
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# EXPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
__all__ = [
|
||||
'Stack',
|
||||
];
|
||||
70
code/python/src/models/stacks/stack.py
Normal file
70
code/python/src/models/stacks/stack.py
Normal file
@@ -0,0 +1,70 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# IMPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
from src.thirdparty.types import *;
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# EXPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
__all__ = [
|
||||
'Stack',
|
||||
];
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# CLASS Stack
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
class Stack:
|
||||
'''
|
||||
A data structure for stacks
|
||||
'''
|
||||
elements: list[Any];
|
||||
|
||||
def __init__(self):
|
||||
self.elements = [];
|
||||
return;
|
||||
|
||||
def __len__(self):
|
||||
'''
|
||||
@returns
|
||||
number of elements in stack
|
||||
'''
|
||||
return len(self.elements);
|
||||
|
||||
def __contains__(self, value: Any) -> bool:
|
||||
return value in self.elements;
|
||||
|
||||
def push(self, value: Any):
|
||||
'''
|
||||
add element to stack
|
||||
'''
|
||||
self.elements.append(value);
|
||||
|
||||
def top(self) -> Any:
|
||||
'''
|
||||
@returns
|
||||
top element from stack without removal
|
||||
'''
|
||||
if len(self.elements) == 0:
|
||||
raise Exception('Stack is empty!');
|
||||
return self.elements[-1];
|
||||
|
||||
def pop(self) -> Any:
|
||||
'''
|
||||
@returns
|
||||
top element from stack and removes it
|
||||
'''
|
||||
value = self.top();
|
||||
self.elements = self.elements[:-1];
|
||||
return value;
|
||||
|
||||
def contains(self, element: Any) -> bool:
|
||||
'''
|
||||
checks if element in stack:
|
||||
'''
|
||||
return element in self.elements;
|
||||
Reference in New Issue
Block a user