# 1. Introduction

A stack is a linear data structure that operates under the Last In First Out (LIFO) principle. In simple terms, the most recent item you add (or "push") to the stack becomes the first one you take out (or "pop"). In this guide, we'll implement basic stack operations using R.

# 2. Program Overview

R doesn't natively support the stack data structure. However, we can emulate this behavior using lists. We will build functions for:

1. Pushing an item onto the stack

2. Popping an item off the stack

3. Peeking at the top item without popping it

# 3. Code Program

``````# Initializing an empty stack
stack <- list()

# Push function
push <- function(item) {
stack <<- append(stack, item)
}

# Pop function
pop <- function() {
if(length(stack) > 0) {
top <- stack[length(stack)]
stack <<- stack[-length(stack)]
return(top)
} else {
return(NULL)
}
}

# Peek function
peek <- function() {
if(length(stack) > 0) {
return(stack[length(stack)])
} else {
return(NULL)
}
}

# Testing the stack operations
push(5)
push(10)
push(15)

print(peek())

print(pop())

print(peek())
``````

### Output:

``` 15
 15
 10
```

# 4. Step By Step Explanation

- We begin by initializing an empty list named "stack".

- The "push" function appends an item to the end of our list, simulating pushing onto the stack.

- The "pop" function retrieves the last item from the list, simulating popping off the stack, and then removes it from the list.

- The "peek" function just retrieves the last item without removing it, giving a view of the top of the stack.

- In our test, we pushed three numbers onto our stack (5, 10, and 15). When we peeked the first time, 15 was at the top.

After popping, 15 were removed, leaving 10 at the top of the stack, as seen in the final output.