using namespace std;
typedef struct stack_node{
int var;
stack_node *next;
};
stack_node *Push(stack_node **head , int val){
stack_node *temp = (*head);
stack_node *new_node = new stack_node;
new_node->var = val;
new_node->next = NULL;
if (temp != NULL)
new_node->next = (*head);
(*head) = new_node;
return new_node;
}
int StackSize(stack_node **head){
stack_node *temp = (*head);
int stack_size = 0;
while (temp->next != NULL) {
++stack_size;
temp = temp->next;
}
return stack_size;
}
void Pop(stack_node **head){
stack_node *temp = (*head);
if (temp != NULL)
(*head) = temp->next;
cout << "Poped node value is : " << temp->var << endl;
delete temp;
}
int main()
{
stack_node *head = new stack_node;
head->next = NULL;
Push( &head , 10);
Push( &head , 5);
Push( &head , 3);
Push( &head , 9);
cout << "Stack Size : " << StackSize(&head) << endl;
Pop(&head);
cout << "Stack Size : " << StackSize(&head) << endl;
Pop(&head);
cout << "Stack Size : " << StackSize(&head) << endl;
Pop(&head);
cout << "Stack Size : " << StackSize(&head) << endl;
Pop(&head);
cout << "Stack Size : " << StackSize(&head) << endl;
return 0;
}
#include <iostream>
using namespace std;
typedef struct stack_node{
int var;
stack_node *next;
};
stack_node *Push(stack_node **head , int val){
stack_node *temp = (*head);
stack_node *new_node = new stack_node;
new_node->var = val;
new_node->next = NULL;
if (temp != NULL)
new_node->next = (*head);
(*head) = new_node;
return new_node;
}
int StackSize(stack_node **head){
stack_node *temp = (*head);
int stack_size = 0;
while (temp->next != NULL) {
++stack_size;
temp = temp->next;
}
return stack_size;
}
void Pop(stack_node **head){
stack_node *temp = (*head);
if (temp != NULL)
(*head) = temp->next;
cout << "Poped node value is : " << temp->var << endl;
delete temp;
}
int main()
{
stack_node *head = new stack_node;
head->next = NULL;
Push( &head , 10);
Push( &head , 5);
Push( &head , 3);
Push( &head , 9);
cout << "Stack Size : " << StackSize(&head) << endl;
Pop(&head);
cout << "Stack Size : " << StackSize(&head) << endl;
Pop(&head);
cout << "Stack Size : " << StackSize(&head) << endl;
Pop(&head);
cout << "Stack Size : " << StackSize(&head) << endl;
Pop(&head);
cout << "Stack Size : " << StackSize(&head) << endl;
return 0;
}
Output:
Stack Size : 4
Poped node value is : 9
Stack Size : 3
Poped node value is : 3
Stack Size : 2
Poped node value is : 5
Stack Size : 1
Poped node value is : 10
Stack Size : 0
No comments:
Post a Comment