Bird
0
0
DSA Cprogramming~20 mins

Push Operation on Stack in DSA C - Practice Problems & Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Stack Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
What is the output after pushing elements on the stack?
Consider a stack implemented using an array with a maximum size of 5. Initially, the stack is empty. We perform the following push operations in order: push(10), push(20), push(30). What is the printed state of the stack after these operations?
DSA C
int stack[5];
int top = -1;

void push(int x) {
    if (top == 4) {
        printf("Stack Overflow\n");
        return;
    }
    stack[++top] = x;
}

void printStack() {
    for (int i = 0; i <= top; i++) {
        printf("%d -> ", stack[i]);
    }
    printf("null\n");
}

int main() {
    push(10);
    push(20);
    push(30);
    printStack();
    return 0;
}
AStack Overflow
B30 -> 20 -> 10 -> null
Cnull
D10 -> 20 -> 30 -> null
Attempts:
2 left
💡 Hint
Remember that push adds elements on top, and printStack prints from bottom to top index.
Predict Output
intermediate
2:00remaining
What happens when pushing beyond stack capacity?
Given a stack with maximum size 3, initially empty, we push elements 5, 15, 25, and then try to push 35. What will be the output after these operations?
DSA C
int stack[3];
int top = -1;

void push(int x) {
    if (top == 2) {
        printf("Stack Overflow\n");
        return;
    }
    stack[++top] = x;
}

void printStack() {
    for (int i = 0; i <= top; i++) {
        printf("%d -> ", stack[i]);
    }
    printf("null\n");
}

int main() {
    push(5);
    push(15);
    push(25);
    push(35);
    printStack();
    return 0;
}
A
Stack Overflow
5 -&gt; 15 -&gt; 25 -&gt; null
B5 -> 15 -> 25 -> 35 -> null
C
Stack Overflow
null
D5 -> 15 -> null
Attempts:
2 left
💡 Hint
Check the condition that prevents pushing when stack is full.
🧠 Conceptual
advanced
1:30remaining
How does the push operation affect the 'top' pointer in a stack?
In a stack implemented using an array, what is the correct way the 'top' pointer changes when an element is pushed?
AAssign the new element at stack[top], then increment 'top' by 1
BIncrement 'top' by 1, then assign the new element at stack[top]
CDecrement 'top' by 1, then assign the new element at stack[top]
DAssign the new element at stack[top], then decrement 'top' by 1
Attempts:
2 left
💡 Hint
Think about where the new element should be placed relative to the current top.
🔧 Debug
advanced
2:00remaining
Identify the error in this push function implementation
What error will occur when running this push function on a stack of size 5?
DSA C
int stack[5];
int top = -1;

void push(int x) {
    if (top == 4) {
        printf("Stack Overflow\n");
        return;
    }
    stack[++top] = x;
}

int main() {
    push(1);
    push(2);
    push(3);
    return 0;
}
ACompilation error due to syntax
BStack Overflow message prints immediately
CWrites out of bounds and corrupts memory
DNo error, works correctly
Attempts:
2 left
💡 Hint
Check how 'top' is used and updated in the push function.
🚀 Application
expert
3:00remaining
After a sequence of push and pop operations, what is the stack state?
A stack with max size 4 is initially empty. The following operations are performed: push(7), push(14), pop(), push(21), push(28), pop(), push(35). What is the printed stack state after these operations?
DSA C
int stack[4];
int top = -1;

void push(int x) {
    if (top == 3) {
        printf("Stack Overflow\n");
        return;
    }
    stack[++top] = x;
}

void pop() {
    if (top == -1) {
        printf("Stack Underflow\n");
        return;
    }
    top--;
}

void printStack() {
    for (int i = 0; i <= top; i++) {
        printf("%d -> ", stack[i]);
    }
    printf("null\n");
}

int main() {
    push(7);
    push(14);
    pop();
    push(21);
    push(28);
    pop();
    push(35);
    printStack();
    return 0;
}
A7 -> 21 -> 35 -> null
B7 -> 21 -> 28 -> 35 -> null
C7 -> 14 -> 21 -> 35 -> null
DStack Underflow
Attempts:
2 left
💡 Hint
Track the top index carefully after each push and pop.