Showing posts with label source code of STACKs (Using Linked Lists). Show all posts
Showing posts with label source code of STACKs (Using Linked Lists). Show all posts

Wednesday, January 31, 2024

STACKs (Using Linked Lists) - DSTC using C Language (Source Code Implemented)

 

STACKs (Using Linked Lists)
Implemented using C Language

C Language Code:


STACKLST.H

// DSTC - STACKLST.H .... Stacks using Linked Lised ...

#include <stdio.h>
#include <stdlib.h>

typedef struct stacklistnode
{
            int info ;
            struct stacklistnode *next ;
}node ;

typedef struct stacklist
{
            node *top ;
}stacklst ;

stacklst *makestacklst()
{
            stacklst *t ;
            t = (stacklst *)malloc(sizeof(stacklst)) ;
            t->top = NULL ;
            return t;
}

node *makenode()
{
            node *t ;
            t = (node *)malloc(sizeof(node)) ;
            return t ;
}

int empty(stacklst *s)
{
            if (s->top == NULL)
                        return 1 ;
            else
                        return 0 ;
}

void push(stacklst *s,int v)
{
            node *n ;
            n = makenode();
            n->info = v;
            n->next = s->top ;
            s->top = n ;
}

int pop(stacklst *s)

Get Paid by Reading Ads on your Mobiles

{
            int v;
            node *t;
            if (empty(s))
            {
                        printf("\nStack Empty");
                        return NULL;
            }

 

            v = s->top->info ;
            t = s->top ;
            s->top = t->next ;
            free(t) ;
            return (v) ;
}


STACKLST.CPP

//   DSTC ---- STACKLST.CPP ..stacks using Linked Lists
// ... including STACKLSt.H ..header file

#include "stacklst.h"
#include <conio.h>
void main()
{
 int ch,i;
 stacklst *s1;
 s1=makestacklst();
 clrscr();
 while(1)
 {
  printf("Enter the choice (1-push, 2-pop, 3-quit): ");
  scanf("%d", &ch);
  if(ch==3)
    break;
  else if(ch==1)
    {
     printf("Enter information to insert: ");
     scanf("%d", &i);
     push(s1,i);
    }
  else if(ch==2)
    {
     i=pop(s1);
     if(i!=NULL)
       printf("Information is: %d\n", i);

    }
  else
     printf("Invalid choice.......enter a value between 1 and 3\n");
 }
}