Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

Data Structure.pptx

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Prochain SlideShare
Data structure.pptx
Data structure.pptx
Chargement dans…3
×

Consultez-les par la suite

1 sur 28 Publicité
Publicité

Plus De Contenu Connexe

Publicité

Data Structure.pptx

  1. 1. CS261 DATA STRUCTURES & ALGORITHMS (WEEK-5) LECTURE-9 & 10 INTRODUCTION TO DATA STRUCTURES & ALGORITHMS Lecturer Azka Aziz Azka.a@scocs.edu.pk
  2. 2. Data structures & Algorithms Lecture#09 Stacks
  3. 3. Course contents Stack Stack ADT Stack Operations Array Implementation List Implementation Applications Sample Examples
  4. 4. stack Stack is a data structure that stores data items. Data items when removed follow a particular order i.e. the item that was added to stack most recently will be removed first (Last In First Out)
  5. 5. stack Stack items cannot be accessed randomly regardless of underlying data storage e.g. Array, Linked List A stack can be imagined as a cylinder with one end closed All items can be added and/or removed from same end (that is open) Adding an item onto stack is called ‘push operation’ Removing an item from stack is called ‘pop operation’
  6. 6. Stack ADT … (implementing with Array)
  7. 7. Stack Operations … Operation Description Pseudocode int inspect_top(); Returns element at ‘top’ with removing it from Stack  If stack is non-empty, return the element immediately beneath the ‘top’  Return -1 (indicator of Stack being empty) otherwise void push(int); Adds the new element onto the Stack  If Stack is full, mention it someway  Otherwise  Add new element to current position of ‘top’  Proceed ‘top’ position by 1 int pop(); Remove and return the element at ‘top’ from Stack  If Stack is empty, mention it someway  Otherwise  Decrease ‘top’ by 1 (making currently top element inaccessible for sub-sequent calls)  Return element at ‘top’ position
  8. 8. Stack using array … implementation Implementation details and issues have been discussed during class
  9. 9. Stack ADT … (implementing with Linked List)
  10. 10. Stack Operations … Operation Description Pseudocode StackUsingList() A constructor that creates an underlying empty linked list Create new instance of underlying linked list as ‘data’ int size(); Returns the number of elements in the stack  Uses size() function from linked list instance ‘data’ to return the number of elements in stack int is_empty(); Returns TRUE if Stack contains no element. It returns FALSE otherwise.  Uses is_empty() function from underlying linked list instance ‘data’ to return whether stack is empty or not int inspect_top() Returns the stack’s top element without removing it  If ‘start’ of ‘data’ points to NULL  It returns -1  Otherwise  It returns value of data item in ‘start’
  11. 11. Stack Operations … Operation Description Pseudocode void push(int key); Adds the new element onto the Stack  Creates new node using ‘key’  Adds it to ‘start’ of underlying linked list setting the next pointer appropriately int pop(); Remove and return the element at start of underlying list  If Stack is empty, return -1  Otherwise  Create a new node pointer ‘temp’ and point it to start of underlying list  Move ‘start’ of underlying list to one step forward  Set next of temp to NULL  Return data value of temp;
  12. 12. Stack using list … implementation Implementation details and issues have been discussed during class
  13. 13. Stack Operations(algorithms) { Repeat while true [Menu option] Write(“1: push”) Write(“2: pop”) Write(“3: peep top”) Write(“4: peep stack”) Write(“5: exit”) [selection of option] Selsct option opt Option 1: Write “Enter Value ” Read value Push(value) Option 2: Pop()
  14. 14. Option 3: Peak top () Option 4: Peak stack() Option 5: Exit [end of selection option ] [end of loop of step 1]
  15. 15. Push(value) [check for stack overflow] 1. If Top== N 2. Write(“stack is full”) 3. Resturn 4. End if 5. Top =Top+1 6. Stack[Top]=value 7. Return
  16. 16. Pop () [check for stack underflow] 1. If Top==0 2. Write (“Stack is empty”) 3. Return 4. End if 5. Value = Stack[Top] 6. Delete Stack[Top] 7. Top =Top-1 8. Write (“Deleted value is ”, value) 9. Return
  17. 17. Peak Stack/ Stack Traversal 1. [check for underflow ] if Top==0 then write (“stack is empty”) Return end if 2. A=Top 3. Repeat while A>0 4. Write Stack[A] 5. A=A-1 [End of Loop] 6. Return
  18. 18. Data structures & Algorithms Lecture#10 Stacks
  19. 19. Course contents Stack Stack ADT Stack Operations List Implementation Applications Sample Examples
  20. 20. Stack by using Link List Struct stk { Int data; Struct stk *link; }; Struct stk *top = NULL;
  21. 21. Stack Operations(algorithms) { Repeat while true [Menu option] Write(“1: push”) Write(“2: pop”) Write(“3: peep top”) Write(“4: peep stack”) Write(“5: exit”) [selection of option] Selsct option opt Option 1: Write “Enter Value ” Read value Push(value) Option 2: Pop()
  22. 22. Option 3: Peak top () Option 4: Peak stack() Option 5: Exit [end of selection option ] [end of loop of step 1]
  23. 23. Push(Value) Temp = new node Temp -> data = value Temp -> link = top Top = temp Return
  24. 24. Pop() 1. [check for underflow] If( top == -1) then Write(“stack underflow”) Return; [End of if structure] 2. Temp = top ; 3. Top = top -> link 4. Write(“Deleted value is ”); 5. Delete (temp) 6. Return ;
  25. 25. Peak stack() 1. [check underflow] If (top = 0) then Write(“underflow’’) Return; [ End of if structure] 2. A = top Repeat while (A< top) Write(top[A]) A = A+1 [End of loop structure] 3. Return;
  26. 26. Peak top() 1. [check for underflow] If(top == -1) Write(“stack is empty”) Return ; [end of if structure] 2. Write (stack[top]) 3. Return ;
  27. 27. Stack implementations Array Implementation Linked List Implementation Stack is empty when ‘top’ is equal to ZERO Stack is empty if underlying list’s ‘start’ points to NULL Static array with fixed size i.e. is_full() can be implemented Dynamic data structure i.e. elements are allocated memory on runtime A variable ‘top’ is required to keep track of number of elements in stack i.e. constant time execution A linear time function size() returns the number of elements in Stack ‘top’ keeps track of position where elements are being pushed / popped from Stack ‘start’ of underlying linked list keeps track of position where elements are pushed / popped
  28. 28. Stack uses Stack is used by operating systems to implement function calls Recursive functions can be converted into non-recursive functions using stacks Stacks can be used to evaluate mathematical expressions in postfix form Undo mechanism in text editors make use of stack

×