Skip to main content

C Program To Implement Stack Operations.

Stack is an area of memory that holds all local variables and parameters used by any function. It also remembers the order in which functions are called so that function returns occur correctly. Stack is a LIFO data structure. Stack operations are PUSH (insert operation), POP (Delete operation), and Display (stack). Each time a function is called, its local variables and parameters are “pushed onto” the stack. When the function returns, these locals and parameters are “popped”.

#include <stdio.h>
#define MAXSIZE 25

struct stack {
int stk[MAXSIZE];
int top;
};

typedef struct stack STACK;
STACK s;

void push(void);
int  pop(void);
void display(void);

int main () {
int choice;
int option = 1;
s.top = -1;

printf ("\tSTACK OPERATION\n");
while (option) {

printf ("\n------------------------------------------\n");
printf ("      1    -->    PUSH               \n");
printf ("      2    -->    POP               \n");
printf ("      3    -->    DISPLAY               \n");
printf ("      4    -->    EXIT           \n");
printf ("------------------------------------------\n");

printf ("\nEnter your choice: ");
scanf    ("%d", &choice);

switch (choice) {
case 1: push();
break;
case 2: pop();
break;
case 3: display();
break;
case 4: return 0;
}

fflush (stdin);
printf ("\nDo you want to continue(Type 0 or 1)? ");
scanf    ("%d", &option);
}}

/*  Function to add an element to the stack */
void push () {
int num;
if (s.top == (MAXSIZE - 1)) {
printf ("\nStack is Full.\n");
return;
}
else {
printf ("\nEnter the element to be pushed: ");
scanf ("%d", &num);
s.top = s.top + 1;
s.stk[s.top] = num;
}
return;
}

/*  Function to delete an element from the stack */
int pop () {
int num;
if (s.top == - 1) {
printf ("\nStack is Empty.\n");
return (s.top);
}
else {
num = s.stk[s.top];
printf ("\npoped element is = %d\n", s.stk[s.top]);
s.top = s.top - 1;
}
return(num);
}

/*  Function to display the status of the stack */
void display () {
int i;
if (s.top == -1) {
printf ("\nStack is empty.\n");
return;
}
else {
printf ("\nThe status of the stack is:\n");
for (i = s.top; i >= 0; i--) {
printf ("%d\n", s.stk[i]);
}}
printf ("\n");
}

Popular posts from this blog

C++ Program To Implement Bank Management System.

#include<iostream> #include<fstream> #include<cctype> #include<iomanip> #include <cstdlib> using namespace std; class account { int acno; char name[50]; int deposit; char type; public: void create_account(); //function to get data from user void show_account() const; //function to show data on screen void modify(); //function to add new data void dep(int); //function to accept amount and add to balance amount void draw(int); //function to accept amount and subtract from balance amount void report() const; //function to show data in tabular format int retacno() const; //function to return account number int retdeposit() const; //function to return balance amount char rettype() const;  //function to return type of account }; void account::create_account() { cout<<"\nEnter The Account No. : "; cin>>acno; cout<<"\n\nEnter The Name Of The Account Holder : "; cin.ig...

C Program To Check Whether A Number Is Palindrome Or Not.

This program takes an integer from user and the integer is reversed. If the reversed integer is equal to the integer entered by user then that number is a palindrome. If not that number is not a palindrome.   #include <stdio.h> int main()  { int num, temp, remainder, reverse = 0; printf("Enter an integer: "); scanf("%d", &num); /*  original number is stored at temp */ temp = num; while (num > 0)  { remainder = num % 10; reverse = reverse * 10 + remainder; num /= 10;   }

Introduction To Algorithms, 3rd Edition

Before there were computers, there were algorithms. But now that there are computers, there are even more algorithms, and algorithms lie at the heart of computing. This book provides a comprehensive introduction to the modern study of computer algorithms. It presents many algorithms and covers them in considerable depth, yet makes their design and analysis accessible to all levels of readers. In this book, the authors tried to keep explanations elementary without sacrificing depth of coverage or mathematical rigor. Each chapter presents an algorithm, a design technique, an application area, or a related topic. Algorithms are described in English and in a pseudocode designed to be readable by anyone who has done a little programming. The book contains 244 figures — many with multiple parts — illustrating how the algorithms work. It also includes careful analysis of the running times of all algorithms. In this third edition, the entire book once again updated including changes cove...

C Interview Questions And Answers - Part 5.

What will be output of the following program? #include<stdio.h> int main() { int a = 2, b = 7, c = 10; c = a == b; printf("%d",c); return 0; } Output: 0 == is a relational operator which returns only two values. 0: If a == b is false 1: If a == b is true Since a = 2 and b = 7, so a == b is false, thus c = 0 What will be output of following program? #include<stdio.h> #include<string.h> int main() { char *ptr1 = NULL; char *ptr2 = 0; strcpy(ptr1," c"); strcpy(ptr2,"questions"); printf("\n%s %s",ptr1,ptr2); return 0; } Output: Run time error.  W e cannot assign any string constant in null pointer by strcpy function.