vault backup: 2025-01-30 09:27:31
This commit is contained in:
35
Data Structures/AI Notes/Stack.md
Executable file
35
Data Structures/AI Notes/Stack.md
Executable file
@@ -0,0 +1,35 @@
|
||||
# Overview
|
||||
|
||||
|
||||
- A stack is ta LIFO list. Meaning "last in first out"
|
||||
- Access is allowed only from one end of the stack
|
||||
- adding an item is called pulsing the stack
|
||||
- retrieving an item is called popping the stack
|
||||
|
||||
# Typical uses
|
||||
|
||||
- Parentheses matching; ()), or (())
|
||||
- compiler's syntax check for matching braces is implemented by using stack
|
||||
|
||||
- The simplest application of a stack is to reverse a word.
|
||||
• You push a given word to stack - letter by letter - and then pop letters from the stack.
|
||||
|
||||
- Another application is an "undo" mechanism in text editors;
|
||||
•this operation is accomplished by keeping all text changes in a stack
|
||||
|
||||
# Parenthesis count
|
||||
|
||||
- Methodology (logical steps to solve the problem):
|
||||
- scan expression from left to right;
|
||||
- when a left parenthesis is encountered, add its position to the stack;
|
||||
- when a right parenthesis is encountered, remove matching position from stack (more example in a moment).
|
||||
|
||||
# try-catch-throw
|
||||
|
||||
- When you enter a try block, push the address of this block onto a stack.
|
||||
\
|
||||
- When an exception is thrown, pop the try block that is at the top of the stack; if the stack is empty, terminate the program.
|
||||
|
||||
- If the popped try block has no matching catch block, go back to the previous step.
|
||||
|
||||
- If the popped try block has a matching catch block, execute the matching catch block.
|
Reference in New Issue
Block a user