0% found this document useful (0 votes)
69 views95 pages

Stack Implementation in C

Chapter 3 covers the design, implementation, and applications of stacks, including basic operations like push, pop, and stack top. It details a linked-list implementation of the stack ADT and discusses various applications such as reversing data and parsing. Additionally, the chapter explores the concept of recursion and its relation to stack frames.

Uploaded by

Dhruval Shah
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
69 views95 pages

Stack Implementation in C

Chapter 3 covers the design, implementation, and applications of stacks, including basic operations like push, pop, and stack top. It details a linked-list implementation of the stack ADT and discusses various applications such as reversing data and parsing. Additionally, the chapter explores the concept of recursion and its relation to stack frames.

Uploaded by

Dhruval Shah
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Chapter 3

Stacks

Objectives
Upon completion you will be able to

• Explain the design, use, and operation of a stack


• Implement a stack using a linked list structure
• Understand the operation of the stack ADT
• Write application programs using the stack ADT
• Discuss reversing data, parsing, postponing and backtracking
Data Structures: A Pseudocode Approach with C 1
Data Structures: A Pseudocode Approach with C 2
3-1 Basic Stack Operations

The stack concept is introduced and three basic stack


operations are discussed.

• Push
• Pop
• Stack Top

Data Structures: A Pseudocode Approach with C 3


Data Structures: A Pseudocode Approach with C 4
Data Structures: A Pseudocode Approach with C 5
Data Structures: A Pseudocode Approach with C 6
Data Structures: A Pseudocode Approach with C 7
3-2 Stack Linked List Implementation

In this section we present a linked-list design for a


stack. After developing the data structures, we write
pseudocode algorithms for the stack ADT.

• Data Structure
• Algorithms

Data Structures: A Pseudocode Approach with C 8


Data Structures: A Pseudocode Approach with C 9
Data Structures: A Pseudocode Approach with C 10
Data Structures: A Pseudocode Approach with C 11
Data Structures: A Pseudocode Approach with C 12
Data Structures: A Pseudocode Approach with C 13
Data Structures: A Pseudocode Approach with C 14
Data Structures: A Pseudocode Approach with C 15
Data Structures: A Pseudocode Approach with C 16
Data Structures: A Pseudocode Approach with C 17
Data Structures: A Pseudocode Approach with C 18
Data Structures: A Pseudocode Approach with C 19
Data Structures: A Pseudocode Approach with C 20
Data Structures: A Pseudocode Approach with C 21
Data Structures: A Pseudocode Approach with C 22
3-3 C Language Implementations

This section presents a simple non-ADT implementation


of a stack. We develop a simple program that inserts
random characters into the stack and then prints them.

Data Structures: A Pseudocode Approach with C 23


Data Structures: A Pseudocode Approach with C 24
Data Structures: A Pseudocode Approach with C 25
Data Structures: A Pseudocode Approach with C 26
Data Structures: A Pseudocode Approach with C 27
(Continued)

Data Structures: A Pseudocode Approach with C 28


Data Structures: A Pseudocode Approach with C 29
Data Structures: A Pseudocode Approach with C 30
Data Structures: A Pseudocode Approach with C 31
3-4 Stack ADT

We begin the discussion of the stack ADT with a


discussion of the stack structure and its application
interface. We then develop the required functions.

• Data Structure
• ADT Implemenation

Data Structures: A Pseudocode Approach with C 32


Data Structures: A Pseudocode Approach with C 33
Data Structures: A Pseudocode Approach with C 34
Data Structures: A Pseudocode Approach with C 35
Data Structures: A Pseudocode Approach with C 36
Data Structures: A Pseudocode Approach with C 37
Data Structures: A Pseudocode Approach with C 38
Data Structures: A Pseudocode Approach with C 39
Data Structures: A Pseudocode Approach with C 40
Data Structures: A Pseudocode Approach with C 41
Data Structures: A Pseudocode Approach with C 42
Data Structures: A Pseudocode Approach with C 43
Data Structures: A Pseudocode Approach with C 44
Data Structures: A Pseudocode Approach with C 45
3-5 Stack Applications

Three basic application problems-parsing,


postponement, and backtracking-are discussed and
sample programs developed. In addition, several other
stack applications are presented, including the classic
Eight Queens problem.

• Reversing Data
• Converting Decimal to Binary
• Parsing
• Postponement
• Backtracking
Data Structures: A Pseudocode Approach with C 46
Data Structures: A Pseudocode Approach with C 47
Data Structures: A Pseudocode Approach with C 48
Data Structures: A Pseudocode Approach with C 49
(continued)

Data Structures: A Pseudocode Approach with C 50


Data Structures: A Pseudocode Approach with C 51
Data Structures: A Pseudocode Approach with C 52
Data Structures: A Pseudocode Approach with C 53
Data Structures: A Pseudocode Approach with C 54
Data Structures: A Pseudocode Approach with C 55
Data Structures: A Pseudocode Approach with C 56
Data Structures: A Pseudocode Approach with C 57
Data Structures: A Pseudocode Approach with C 58
Data Structures: A Pseudocode Approach with C 59
Data Structures: A Pseudocode Approach with C 60
Data Structures: A Pseudocode Approach with C 61
Data Structures: A Pseudocode Approach with C 62
Data Structures: A Pseudocode Approach with C 63
Data Structures: A Pseudocode Approach with C 64
Data Structures: A Pseudocode Approach with C 65
Data Structures: A Pseudocode Approach with C 66
Data Structures: A Pseudocode Approach with C 67
Data Structures: A Pseudocode Approach with C 68
Data Structures: A Pseudocode Approach with C 69
Data Structures: A Pseudocode Approach with C 70
Data Structures: A Pseudocode Approach with C 71
Data Structures: A Pseudocode Approach with C 72
Data Structures: A Pseudocode Approach with C 73
Data Structures: A Pseudocode Approach with C 74
Data Structures: A Pseudocode Approach with C 75
Data Structures: A Pseudocode Approach with C 76
Data Structures: A Pseudocode Approach with C 77
(continued)

Data Structures: A Pseudocode Approach with C 78


Data Structures: A Pseudocode Approach with C 79
Data Structures: A Pseudocode Approach with C 80
Data Structures: A Pseudocode Approach with C 81
Data Structures: A Pseudocode Approach with C 82
Data Structures: A Pseudocode Approach with C 83
Data Structures: A Pseudocode Approach with C 84
Data Structures: A Pseudocode Approach with C 85
Data Structures: A Pseudocode Approach with C 86
Data Structures: A Pseudocode Approach with C 87
Data Structures: A Pseudocode Approach with C 88
Data Structures: A Pseudocode Approach with C 89
Data Structures: A Pseudocode Approach with C 90
3-6 How Recursion Works

This section discusses the concept of the stack frame


and the use of stacks in writing recursive software

• Enqueue
• Dequeue
• Queue Front
• Queue Rear
• Queue Example

Data Structures: A Pseudocode Approach with C 91


Data Structures: A Pseudocode Approach with C 92
Data Structures: A Pseudocode Approach with C 93
Data Structures: A Pseudocode Approach with C 94
Data Structures: A Pseudocode Approach with C 95

You might also like