//STACK WITH linked list
#include<stdlib.h>
#include<limits.h>
#include<conio.h>
#include<stdio.h>
struct StackNode {
int data;
struct StackNode* next;
};
struct StackNode* newNode(int data)
{
struct StackNode* node = (struct StackNode*) malloc(sizeof(struct StackNode));
node->data = data;
return node;
}
int isEmpty(struct StackNode* root)
{
return !root;
}
void push(struct StackNode** root, int item)
{
struct StackNode* node = newNode(item);
node->next = *root;
*root = node;
printf("pushed %d \n", item);
}
void pop(struct StackNode** root)
{
if (isEmpty(*root))
{
printf("Underflow \n");
return;
}
int poped = (*root)->data;
struct StackNode* temp = *root;
*root = (*root)->next;
free(temp);
printf("popped %d\n", poped);
}
void peek(struct StackNode* root)
{
if (isEmpty(root))
{
printf("empty stack \n");
return;
}
printf("peeked %d \n" , root->data);
}
int main()
{
struct StackNode* stackRoot = NULL;
push(&stackRoot, 4);
push(&stackRoot, 6);
pop(&stackRoot);
peek(stackRoot);
pop(&stackRoot);
peek(stackRoot);
push(&stackRoot, 6);
peek(stackRoot);
getchar();
return 0;
}
#include<stdlib.h>
#include<limits.h>
#include<conio.h>
#include<stdio.h>
struct StackNode {
int data;
struct StackNode* next;
};
struct StackNode* newNode(int data)
{
struct StackNode* node = (struct StackNode*) malloc(sizeof(struct StackNode));
node->data = data;
return node;
}
int isEmpty(struct StackNode* root)
{
return !root;
}
void push(struct StackNode** root, int item)
{
struct StackNode* node = newNode(item);
node->next = *root;
*root = node;
printf("pushed %d \n", item);
}
void pop(struct StackNode** root)
{
if (isEmpty(*root))
{
printf("Underflow \n");
return;
}
int poped = (*root)->data;
struct StackNode* temp = *root;
*root = (*root)->next;
free(temp);
printf("popped %d\n", poped);
}
void peek(struct StackNode* root)
{
if (isEmpty(root))
{
printf("empty stack \n");
return;
}
printf("peeked %d \n" , root->data);
}
int main()
{
struct StackNode* stackRoot = NULL;
push(&stackRoot, 4);
push(&stackRoot, 6);
pop(&stackRoot);
peek(stackRoot);
pop(&stackRoot);
peek(stackRoot);
push(&stackRoot, 6);
peek(stackRoot);
getchar();
return 0;
}
No comments:
Post a Comment