Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Stack

18,262 views

Published on

describes data structures

Published in: Technology, Education

Stack

  1. 1. AData Structure
  2. 2.  What is a Stack Stack Operations LIFO Stack Animation Depicting Push Operation Animation Depicting Pop Operation Array Implementation of Stack Applications of stack Checking for balanced braces Converting Infix Expression to Postfix Postfix calculator
  3. 3. What is a Stack?A stack is a Last In, First Out (LIFO) datastructure,objects inserted last are the first tocome out of the stackAnything added to the stack goes on the “top”of the stackAnything removed from the stack is taken fromthe “top” of the stackThings are removed in the reverse order fromthat in which they were inserted
  4. 4. Stack Operations PUSH Adds the object to the top of the stack POP Removes the object at the top of the stack and returns it PEEK Returns the top object of the stack but does not remove it from the stack ISEMPTY Returns True if Stack is empty
  5. 5. A LIFO Stack Push PopStack Pointer Top Bottom
  6. 6. array Implementation of Stack A[1] A[2] …. …. …. A[n]Push X w y x Stack pointer Stack pointer After many Stack pointer J=2 J=3 Push Ops J=n Before Push After Push Stack FullPop w yAfter many Pop ops Stack Pointer Stack Pointer Stack Pointer J=0 J=2 J=3 Stack Empty After Pop Before Pop
  7. 7. Checking for Balanced Braces ([]({()}[()])) is balanced; ([]({()}[())]) is not Simple counting is not enough to check balance You can do it with a stack: going left to right,  If you see a (, [, or {, push it on the stack  If you see a ), ], or }, pop the stack and check whether you got the corresponding (, [, or {  When you reach the end, check that the stack is empty
  8. 8. Converting Infix Expressions to Equivalent Postfix Expressions Infix Expression a+b Postfix Expression ab+ An infix expression can be evaluated by first being converted into an equivalent postfix expression Facts about converting from infix to postfix  Operands always stay in the same order with respect to one another  All parentheses are removed
  9. 9. Algorithm : Converting Infix Expression to Postfix using stack Suppose X is an arithmetic expression written in infix notation. This algorithm finds the equivalent postfix expression Y. 1. Push "(" onto STACK, and add ")" to the end of X. 2. Scan X from left to right and REPEAT Steps 3 to 6 for each element of X UNTIL the STACK is empty : 3. If an operand is encountered, add it to Y. 4. If a left parenthesis is encountered, push it onto STACK. 5. If an operator is encountered, then : (a) Repeatedly pop from STACK and add to Y each operator (on the top of STACK) which has the same precedence as or higher precedence than operator. (b) Add operator to STACK. /* End of If structure * / 6. If a right parenthesis is encountered, then : (a) Repeatedly pop from STACK and add to Y each operator (on the top of STACK) until a left parenthesis is encountered. (b) Remove the left parenthesis. [Do not add the left parenthesis to Y]. /* End of If structure * / /* End of Step 2 loop * / 7. END.
  10. 10. A trace of the algorithm that converts the infix expression a - (b + c * d)/e to postfix form
  11. 11. A postfix calculator When an operand is entered, the calculator  Pushes it onto a stack When an operator is entered, the calculator  Applies it to the top (one or two, depending on unary or binary operator) operand(s) of the stack  Pops the operands from the stack  Pushes the result of the operation on the stack
  12. 12. The action of a postfix calculator when evaluating the expression 2 * (3 + 4) Postfix Notation--- 2 3 4 + *
  13. 13. Acknowledgement Data Structures BY Tanenbaum Internet Computer Science C++ A textbook for class XII -By Sumita Arora prepared by- Seema kaushik, Computer science department, DAV public school, sector-14, gurgaon

×