


































































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
The class definition and implementation of a stacktype in c++. The class interface, private data, and various operations such as push, pop, isempty, and isfull. The document also includes a class diagram and tracing client code examples.
Typology: Slides
1 / 74
This page cannot be seen from the preview
Don't miss anything!
ADTs Stack and Queue
empty.
class StackType { public:
StackType( );
bool IsFull () const;
bool IsEmpty() const;
void Push( ItemType item );
void Pop();
ItemType Top();
private: int top; ItemType items[MAX_ITEMS]; };
What are the
pre and post
conditions?
// File: StackType.cpp
#include "StackType.h" #include
bool StackType::IsFull() const { return (top == MAX_ITEMS-1); }
(Memory reversed to better illustrate concept)
StackType
Pop
Push
IsFull
IsEmpty
Private data: top
[MAX_ITEMS-1]
.. . [ 2 ] [ 1 ] Top^ items^ [ 0 ]
char letter = โVโ; StackType charStack; charStack.Push(letter); charStack.Push(โCโ); charStack.Push(โSโ); if ( !charStack.IsEmpty( )) charStack.Pop( ); charStack.Push(โKโ); while (!charStack.IsEmpty( )) { letter = charStack.Top(); charStack.Pop(0)}
Private data:
top
. . . [ 2 ]
[ 1 ] items [ 0 ]
Private data:
top 0
. . . [ 2 ]
[ 1 ]
items [ 0 ] โ V โ
char letter = โVโ; StackType charStack; charStack.Push(letter); charStack.Push(โCโ); charStack.Push(โSโ); if ( !charStack.IsEmpty( )) charStack.Pop( ); charStack.Push(โKโ); while (!charStack.IsEmpty( )) { letter = charStack.Top(); charStack.Pop(0)}
Private data:
top 1
. . . [ 2 ]
[ 1 ] โ C โ
items [ 0 ] โ V โ
char letter = โVโ; StackType charStack; charStack.Push(letter); charStack.Push(โCโ); charStack.Push(โSโ); if ( !charStack.IsEmpty( )) charStack.Pop( ); charStack.Push(โKโ); while (!charStack.IsEmpty( )) { letter = charStack.Top(); charStack.Pop(0)}
Private data:
top 2
. . . [ 2 ] โ S โ
[ 1 ] โ C โ items [ 0 ] โ V โ
char letter = โVโ; StackType charStack; charStack.Push(letter); charStack.Push(โCโ); charStack.Push(โSโ); if ( !charStack.IsEmpty( )) charStack.Pop( ); charStack.Push(โKโ); while (!charStack.IsEmpty( )) { letter = charStack.Top(); charStack.Pop(0)}
Private data:
top 1
. . . [ 2 ] โ S โ [ 1 ] โ C โ items [ 0 ] โ V โ
char letter = โVโ; StackType charStack; charStack.Push(letter); charStack.Push(โCโ); charStack.Push(โSโ); if ( !charStack.IsEmpty( )) charStack.Pop( ); charStack.Push(โKโ); while (!charStack.IsEmpty( )) { letter = charStack.Top(); charStack.Pop(0)}
Private data:
top 2
. . . [ 2 ] โ K โ [ 1 ] โ C โ items [ 0 ] โ V โ
char letter = โVโ; StackType charStack; charStack.Push(letter); charStack.Push(โCโ); charStack.Push(โSโ); if ( !charStack.IsEmpty( )) charStack.Pop( ); charStack.Push(โKโ); while (!charStack.IsEmpty( )) { letter = charStack.Top(); charStack.Pop(0)}
Private data:
top 2
. . . [ 2 ] โ K โ [ 1 ] โ C โ items [ 0 ] โ V โ
char letter = โVโ; StackType charStack; charStack.Push(letter); charStack.Push(โCโ); charStack.Push(โSโ); if ( !charStack.IsEmpty( )) charStack.Pop( ); charStack.Push(โKโ); while (!charStack.IsEmpty( )) { letter = charStack.Top(); charStack.Pop(0)}