Difference between revisions of "Stacks"

From TRCCompSci - AQA Computer Science
Jump to: navigation, search
(Push)
Line 4: Line 4:
 
==Check for Empty==
 
==Check for Empty==
 
==Push==
 
==Push==
When an item is pushed it is added to the top of the stack. if Bill is at value one and Ted is pushed, he would be added to value 2.
+
When an item is pushed it is added to the top of the stack. The stack pointer points to the item at the top of the stack, so the stack pointer is incremented and then the data item is stored in that location of the stack. remember this can only be carried out if the stack is not currently full.
 +
 
 +
===Algorithm===
 +
<syntaxhighlight>
 +
procedure TestAndPush (ref Stack, ref SP)
 +
begin
 +
if SP = StackMax then
 +
output ‘no room on stack’
 +
else
 +
input DataItem
 +
SP := SP + 1
 +
Stack[SP] : = DataItem
 +
endif
 +
end { TestAndPush}
 +
</syntaxhighlight>
  
 
==Pop==
 
==Pop==

Revision as of 09:38, 8 November 2017

A stack is a last in, first out data structure that can only have data added or removed from the top. The stack has limited size and the stack pointer will always point to the value at the top of the stack. An empty stack thus has a stack pointer value of 0. You can only push an item if the stack is not full. You can only pop an item if the stack is not empty.

Check for Full

Check for Empty

Push

When an item is pushed it is added to the top of the stack. The stack pointer points to the item at the top of the stack, so the stack pointer is incremented and then the data item is stored in that location of the stack. remember this can only be carried out if the stack is not currently full.

Algorithm

procedure TestAndPush (ref Stack, ref SP)
begin
	if SP = StackMax then
		output ‘no room on stack’
	else
		input DataItem
		SP := SP + 1
		Stack[SP] : = DataItem
	endif
end { TestAndPush}

Pop

Using the example from before, if Bob was at value 1 and Bill was at value 2, the value from the top of the stack would be removed. so Bill would be removed, just leaving Bob at value 1.

Peek

Allows you to get the value from the top of the stack, without actually popping it.