Linear data structures were discussed, specifically stacks. Stacks have applications such as reversing strings, balancing symbols, evaluating postfix expressions, and translating infix expressions to postfix. Reversing a string involves pushing characters onto a stack and then popping them off to output the reverse order. Balancing symbols uses a stack to check that every opening symbol has a closing match. Postfix expression evaluation pops operands from the stack and pushes results. Translating infix to postfix involves pushing operators onto a stack and outputting operands and popping higher priority operators.
Main memory must support both OS and user processes
Limited resource, must allocate efficiently
Contiguous allocation is one early method
Main memory usually into two partitions:
Resident operating system, usually held in low memory with interrupt vector
User processes then held in high memory
Each process contained in single contiguous section of memory
A macro processor is a system software. Macro is that the Section of code that the programmer writes (defines) once, and then can use or invokes many times.
A Market Basket Analysis of a bakery shop data using Apriori Algorithms and Association Rule mining . Application and Benefits of Market Basket Analytics in Retail Management
OVERVIEW:
Introduction
Definition
Example of Threaded BT.
Types & Structure
One-way .
Double-way.
Structure.
Traversal
Algorithm for Traversal
Traversal Example
Inserting
Algorithm for Inserting
Inserting Example
Comparison With Binary Tree
Advantages and Disadvantages
Why Threaded BT are used?
Conclusion
Reference
Main memory must support both OS and user processes
Limited resource, must allocate efficiently
Contiguous allocation is one early method
Main memory usually into two partitions:
Resident operating system, usually held in low memory with interrupt vector
User processes then held in high memory
Each process contained in single contiguous section of memory
A macro processor is a system software. Macro is that the Section of code that the programmer writes (defines) once, and then can use or invokes many times.
A Market Basket Analysis of a bakery shop data using Apriori Algorithms and Association Rule mining . Application and Benefits of Market Basket Analytics in Retail Management
OVERVIEW:
Introduction
Definition
Example of Threaded BT.
Types & Structure
One-way .
Double-way.
Structure.
Traversal
Algorithm for Traversal
Traversal Example
Inserting
Algorithm for Inserting
Inserting Example
Comparison With Binary Tree
Advantages and Disadvantages
Why Threaded BT are used?
Conclusion
Reference
Introduction to programming in MATLAB
Youtube: https://www.youtube.com/watch?v=gDhpqj13dTA
Github: https://github.com/Mustafa-nafaa/Multimedia-TechnologyLab/tree/main/Week1:Introduction%20Matlab
https://github.com/ashim888/dataStructureAndAlgorithm
Stack
Concept and Definition
• Primitive Operations
• Stack as an ADT
• Implementing PUSH and POP operation
• Testing for overflow and underflow conditions
Recursion
• Concept and Definition
• Implementation of:
¬ Multiplication of Natural Numbers
¬ Factorial
¬ Fibonacci Sequences
The Tower of Hanoi
Stack is a collection based on the principle of adding elements and retrieving them in the opposite order
What is STACK?
Stack Operations
Applications
Built-in Stack
Downloadable Resources
THIS IS COMPELTE VARIABLE POWER SUPPLY PROJECT, HELP YOU YOU TO UNDERSTAND. WE DESIGNED THE CIRCUIT ON PROTEUS AND ITS PICTURE IS IN PROTEUS.IT WILL GIVE YOU BOTH POSITIVE AND NEGATIVE VOLTAGE.
2. Topics Covered in This Lecture
• Applications of stack
– Reversing the string
– Balancing symbols
– Postfix expression evaluation
– Translating infix expression to postfix expression
3. Applications of Stack
• Reversing the string
– push each character on to a stack as it is read.
– When the line is finished, we then pop characters off the
stack, and they will come off in the reverse order.
4. Applications of Stack
Reversing the string
void ReverseRead(void)
{ //using static Stack class of Lecture#3
Stack<char> stack;//The Stack ‘stack’ is created
char item;
cin>>item;
while (!stack.isFull()&&item!='$')//type in $ from keyboard to stop input
{ stack.push(item); // push each character onto the stack
cin>>item;
}
while(!stack.isEmpty() )
{ item=stack.pop ();//Pop an element from stack
cout<<item;
}
}
5. Applications of Stack
• Balancing Symbols
Compilers use a program that checks whether every symbol (like braces,
parenthesis, brackets, etc) in a program is balanced.
The simple algorithm for this purpose is:
1. Make an empty stack.
2. Read the characters until end of file.
3. If the character is an open any thing, push it onto the stack.
4. If it is a close any thing, then
if the stack is empty report an error.
Otherwise Pop the Stack.
If the popped symbol is not the corresponding opening symbol, then
report an error.
5. At the end of the file, if the stack is not empty report an error.
7. Infix, Suffix, Prefix
Infix = a * b + c
((a*b) +c)
Priority:
1. a * b
2. a1 + c / a1 = a * b /
Prefix =
* a b , +a1 c
+*abc
Suffix =
ab* , a1c+
ab*c+
8. Infix, Suffix, Prefix
infix = a- b * c / d + e / f
suffix =a – bc* / d + e / f
a – bc*d/ + e / f
a – bc*d/ + ef/
abc*d/- + ef/
abc*d/-ef/+
prefix =a - *bc / d + e / f
a - /*bcd + e / f
a - /*bcd + /ef
-a/*bcd + /ef
+-a/*bcd/ef
10. Applications of Stack
Postfix Expression Evaluation
– When a number is seen, it is pushed onto the stack
– When an operator is seen, then pop two elements from
stack and push the result onto the stack.
Now we evaluate the following postfix expression.
6523+8*+3+* 3
1. The first four are placed on the stack. The resulting stack is 2
5
6
stack
11. Applications of Stack
• evaluating the following postfix
expression.
3
6523+8*+3+* 2
5
6
stack
2. Next a + is read, so 3 and 2 are popped from the stack and their sum 5 is
pushed. 5
5
6
stack
12. Applications of Stack
• evaluating the following postfix
expression.
6523+8*+3+* 5
5
6
stack
8
3. Next 8 is read and pushed.
5
5
6
stack
13. Applications of Stack
• evaluating the following postfix
expression.
8
6523+8*+3+* 5
5
6
stack
4. Next a * is seen so 8 and 5 are popped as 8 * 5 = 40 is pushed
40
5
6
stack
14. Applications of Stack
• evaluating the following postfix
expression.
6523+8*+3+* 40
5
6
stack
5. Next a + is read so 40 and 5 are popped and 40 + 5 = 45 is pushed.
45
6
stack
15. Applications of Stack
• evaluating the following postfix
expression.
6523+8*+3+*
45
6
stack
6. Now 3 is pushed
3
45
6
stack
16. Applications of Stack
• evaluating the following postfix
expression.
6523+8*+3+* 3
45
6
stack
7. Next symbol is + so pops 3 and 45 and pushes 45 + 3 = 48, so push 48 in stack.
48
6
stack
17. Applications of Stack
• evaluating the following postfix
expression.
6523+8*+3+* 48
6
stack
7. Finally a * is seen and 48 and 6 are popped, the result 6 * 48 = 288 is pushed.
8. As there is no input, so pop the stack and we get the result.
288
stack
18. Applications of Stack
• Translating infix expressions to postfix expression
– When an operand is read, it is immediately placed onto the output.
– When an operator or left parenthesis comes then save it in the stack
initially stack is empty.
– If we see a right parenthesis, then we pop the stack, writing symbols
until we encounter a (corresponding) left parenthesis, which is
popped but not output.
– If we see any other symbol (‘+’, ‘*’, ‘(‘, etc) then we pop entries form
the stack until we find an entry of lower priority. One exception is
that we never remove a ‘(‘ from the stack except when processing a
‘)’.
– When the popping is done, we push the operand onto the stack.
– Finally, if we read the end of input, we pop the stack until it is empty,
writing symbols onto the output.
19. Applications of Stack
• Translating infix expressions to postfix expression
Convert the following infix expression to postfix expression.
a+b*c+(d*e+f)*g
1. First the symbol a is read, so it is passed through to the output a
2. Then + is read and pushed onto the stack. output
+
stack
3. Next b is read and passed through to the output. ab
output *
4. Next a * is read. The top entry on the operator stack has lower +
precedence than *, so nothing is output and * is put on the .
stack
20. Applications of Stack
Converting the following infix expression to postfix
expression.
a+b*c+(d*e+f)*g
5. Next, c is read and output. abc
output
6. The next symbol is a +. Checking the stack, we find that priority of stack top
symbol * is higher than + . So we pop a * and place it on the output, Pop the
other +, which is not of lower but equal priority, and then push +.
* abc*+
+
+ output
stack stack
21. Applications of Stack
Converting the following infix expression to postfix
expression.
a+b*c+(d*e+f)*g
7. The next symbol read is an ‘(‘, which, being of highest precedence, is placed on
the stack.
(
+
stack
8. Then d is read and output. abc*+d
output
22. Applications of Stack
Converting the following infix expression to postfix
expression.
a+b*c+(d*e+f)*g
9. We continue by reading a *. Since open parenthesis do not get removed except
when a closed parenthesis is being processed, there is no output and we push *
in stack
*
(
+
stack
10. Next, e is read and output.
abc*+de
output
23. Applications of Stack
Converting the following infix expression to postfix
expression.
a+b*c+(d*e+f)*g
11. The next symbol read is a +, since priority of stack top value is higher so we pop
* and push +.
+ abc*+de*
( output
+
stack
12. Now we read f and output f.
abc*+de*f
output
24. Applications of Stack
Converting the following infix expression to postfix
expression.
a+b*c+(d*e+f)*g
13. Now we read a ‘)’, so the stack is emptied back to the ‘(‘, we output a +.
abc*+de*f+
+
output
stack
14. We read a * next; it is pushed onto the stack.
*
+
stack
15. Now, g is read and output. abc*+de*f+g
output
25. Applications of Stack
Converting the following infix expression to postfix
expression.
*
a+b*c+(d*e+f)*g
+
stack
16. The input is now empty, so pop output symbols from the stack until it is empty.
abc*+de*f+g*+
output
stack
26. Assignment 1
Group Size: 2, Due Date : Feb 27, 2012
• Implement Applications of stack
1. Balancing of symbols
2. Decimal to Binary Conversion
3. Infix to Postfix conversion
4. Postfix expression evaluation
5. Infix to Prefix conversion
6. Prefix expression evaluation
1. Each application will be implemented as a separate
function. Function will use stack, which is already
implemented in a header file and is available for reuse.
2. Difference between CGPAs of both group members
should not be more than ONE