stack Specification Sheet


Portable Object Compiler (c) 1998 by David Stes. All Rights Reserved.

Stack

Inherits from:Cltn

Class Description

Stack instances are collections that maintain their entries in LIFO (last in first out) order. Although Stacks are most often controlled by the push: and pop methods, the class also provides for random access of the stack, through the at: and removeAt: methods. Note that the indices are relative to the top (last added) item on the stack, which is the opposite of how the OrdCltn class works.

Method Types

Creation

Interrogation

Adding

Printing

Methods



new

+ new

Returns a new empty stack.



new:

+ new :(unsigned) n

Returns a new empty stack, that can hold n objects.



copy

- copy

Returns a new copy of the stack.



deepCopy

- deepCopy

Returns a new copy of the stack. The members in the new stack are deep copies of the members in the original stack.



emptyYourself

- emptyYourself

Removes all the members of the stack (without freeing them). Returns the receiver.



freeContents

- freeContents

Removes and frees all the members of the receiver, but doesn't free the receiver itself. Returns the receiver.



free

- free

Frees the stack, but not its contents. Returns nil. Do :

aCltn = [[aCltn freeContents] free];
if you want to free the collection and its contents.



depth

- (unsigned) depth

Returns the number of objects on the stack.



isEmpty

- (BOOL) isEmpty

Whether the number of objects on the stack is equal to zero.



eachElement

- eachElement

Returns a sequence of the elements in the collection.

aSeq = [myStack eachElement];
while ((anElement = [aSeq next])) {
    /* do something */
}
aSeq = [aSeq free];


topElement

- topElement

Returns the top element on the stack, without removing it. Returns nil if there are no elements on the stack.



push:

- push : anObject

Pushes anObject on the stack, so that it becomes the top of the stack. Returns self.



pop

- pop

Pops the top of the stack and returns it. Returns nil if the stack is empty.



swap

- swap

Exchanges the top two stack items and returns the receiver. Generates an exception if the stack is not at least two items deep.



at:

- at :(unsigned ) anOffset

Returns the object at anOffset. Note that the top of the stack is at offset 0.



removeAt:

- removeAt :(unsigned ) anOffset

Removes the object at anOffset. Note that the top of the stack is at offset 0.



printToFile:

- printToFile :(FILE *) aFile

Prints a list of the objects in the objects by sending each individual object a printToFile: message. Returns the receiver.