#include<stdio.h>
struct Node
{
int data;
struct Node * next;
} * top = NULL;
void push( int ) ;
void pop( ) ;
void display( ) ;
void main( )
{
int choice, value;
printf ( "1. Push\n 2. Pop\n 3. Display\n 4. Exit\n " ) ; while ( 1 ) {
printf ( "Enter your choice: " ) ; switch ( choice) {
case 1 : printf ( "\n Enter value to insert: " ) ; push( value) ;
break ;
case 2 : pop( ) ; break ;
case 3 : display( ) ; break ;
default : printf ( "\n Wrong selection!!! \n " ) ; }
}
}
void push( int value)
{
struct Node * newNode;
newNode
= ( struct Node
* ) malloc ( sizeof ( struct Node
) ) ; newNode-> data = value;
if ( top == NULL)
newNode-> next = NULL;
else
newNode-> next = top;
top = newNode;
printf ( "\n Insertion is Success!!!\n " ) ; }
void pop( )
{
if ( top == NULL)
printf ( "\n Stack is Empty!!!\n " ) ; else {
struct Node * temp = top;
printf ( "\n Deleted element: %d" , temp
-> data
) ; top = temp-> next;
}
}
void display( )
{
if ( top == NULL)
printf ( "\n Stack is Empty!!!\n " ) ; else {
struct Node * temp = top;
while ( temp-> next != NULL) {
temp = temp -> next;
}
}
}
I2luY2x1ZGU8c3RkaW8uaD4KCnN0cnVjdCBOb2RlCnsKICAgaW50IGRhdGE7CiAgIHN0cnVjdCBOb2RlICpuZXh0Owp9KnRvcCA9IE5VTEw7Cgp2b2lkIHB1c2goaW50KTsKdm9pZCBwb3AoKTsKdm9pZCBkaXNwbGF5KCk7Cgp2b2lkIG1haW4oKQp7CiAgIGludCBjaG9pY2UsIHZhbHVlOwogICBwcmludGYoIjEuIFB1c2hcbjIuIFBvcFxuMy4gRGlzcGxheVxuNC4gRXhpdFxuIik7CiAgIHdoaWxlKDEpewogICAgICBwcmludGYoIkVudGVyIHlvdXIgY2hvaWNlOiAiKTsKICAgICAgc2NhbmYoIiVkIiwmY2hvaWNlKTsKICAgICAgc3dpdGNoKGNob2ljZSl7CgkgY2FzZSAxOiBwcmludGYoIlxuRW50ZXIgdmFsdWUgdG8gaW5zZXJ0OiAiKTsKCQkgc2NhbmYoIiVkIiwgJnZhbHVlKTsKCQkgcHVzaCh2YWx1ZSk7CgkJIGJyZWFrOwoJIGNhc2UgMjogcG9wKCk7IGJyZWFrOwoJIGNhc2UgMzogZGlzcGxheSgpOyBicmVhazsKCSBjYXNlIDQ6IGV4aXQoMCk7CgkgZGVmYXVsdDogcHJpbnRmKCJcbldyb25nIHNlbGVjdGlvbiEhISBcbiIpOwogICAgICB9CiAgIH0KfQp2b2lkIHB1c2goaW50IHZhbHVlKQp7CiAgIHN0cnVjdCBOb2RlICpuZXdOb2RlOwogICBuZXdOb2RlID0gKHN0cnVjdCBOb2RlKiltYWxsb2Moc2l6ZW9mKHN0cnVjdCBOb2RlKSk7CiAgIG5ld05vZGUtPmRhdGEgPSB2YWx1ZTsKICAgaWYodG9wID09IE5VTEwpCiAgICAgIG5ld05vZGUtPm5leHQgPSBOVUxMOwogICBlbHNlCiAgICAgIG5ld05vZGUtPm5leHQgPSB0b3A7CiAgIHRvcCA9IG5ld05vZGU7CiAgIHByaW50ZigiXG5JbnNlcnRpb24gaXMgU3VjY2VzcyEhIVxuIik7Cn0Kdm9pZCBwb3AoKQp7CiAgIGlmKHRvcCA9PSBOVUxMKQogICAgICBwcmludGYoIlxuU3RhY2sgaXMgRW1wdHkhISFcbiIpOwogICBlbHNlewogICAgICBzdHJ1Y3QgTm9kZSAqdGVtcCA9IHRvcDsKICAgICAgcHJpbnRmKCJcbkRlbGV0ZWQgZWxlbWVudDogJWQiLCB0ZW1wLT5kYXRhKTsKICAgICAgdG9wID0gdGVtcC0+bmV4dDsKICAgICAgZnJlZSh0ZW1wKTsKICAgfQp9CnZvaWQgZGlzcGxheSgpCnsKICAgaWYodG9wID09IE5VTEwpCiAgICAgIHByaW50ZigiXG5TdGFjayBpcyBFbXB0eSEhIVxuIik7CiAgIGVsc2V7CiAgICAgIHN0cnVjdCBOb2RlICp0ZW1wID0gdG9wOwogICAgICB3aGlsZSh0ZW1wLT5uZXh0ICE9IE5VTEwpewoJIHByaW50ZigiJWQtLS0+Iix0ZW1wLT5kYXRhKTsKCSB0ZW1wID0gdGVtcCAtPiBuZXh0OwogICAgICB9CiAgICAgIHByaW50ZigiJWQiLHRlbXAtPmRhdGEpOwogICB9Cn0gICA=