Sunday, 31 July 2016

Static Queue



#include <stdio.h>
#define SIZE 5
int queue[SIZE];
int r=0;
int f=-1;
int insert();
int delete();
int display();
int main() {
int n;
int c=-1;

while(c!=4)
{
printf("\n Menu \n");
printf("1.Insert \n");
printf("2.Delete \n");
printf("3.Display \n");
printf("4.Exit \n");

printf("Enter Your Choice : \n");
scanf("%d",&n);
switch(n)
{
case 1:
{
insert();
display();
break;
}
case 2:
{
delete();
break;
}
case 3:
{
display();
break;
}
case 4:
{
c=4;
break;
}
default :
{
printf("Wrong choice input");
break;
}
}

}
return 0;
}
int insert()
{
if(r==SIZE)
{
printf("Queue is full\n");
}
else if(r==0 && f==-1)
{
int value;
printf("Enter value you want to insert");
scanf("%d",&value);
queue[r++]=value;
f++;
}
else
{
int value;
printf("Enter value you want to insert");
scanf("%d",&value);
queue[r++]=value;
}
return 0;
}
int delete()
{
if(f==-1)
{
printf("Queue is empty");
}
else if(r==f)
{
printf("queue is empty");
r=0;
f=-1;
}
else
{
int i;
printf("deleted value is %d",queue[f]);
for(i=0;i<(r-1);i++)
{
queue[i]=queue[i+1];
}
r--;
}

return 0;
}

int display()
{
int i;
for(i=f;i<r;i++)
{
printf("%d\n",queue[i]);
}
return 0;
}



Redmi Note 3(32 gb gold)

Selection Sort



#include<stdio.h>
void s_sort(int* ,int);
int main()
{
int i;

// intialize array and give value
int a[]={-6,4,-8,0,2,3,1};
int n=(sizeof(a))/(sizeof(int));
printf("%d\n",n);

// define function
s_sort(a,n);

// print sorted array
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
return 0;
}

void s_sort(int* a,int n)
{
int i,j,temp;

// intialize loop for sorting elements
for(i=0;i<(n-1);i++)
{
// define minimum value

int min = i;

// find minimum value in array
for(j=i+1;j<n;j++)
{
if (a[j] < a[min]) 
            min = j;
}

// if minimum value is find in array then swap 
if(min!=i)
{
temp = a[i];
a[i] = a[min];
a[min] = temp;
}
}
}


Binary Search



#include<stdio.h>
void b_search(int* a,int n,int value)
{
int low=0,high=n-1,flag=0,mid;
while(low<=high)
{
mid=(low+high)/2;
if(a[mid]==value)
{
flag=1;
break;
}
else if(a[mid]>value)
{
high=mid-1;
}
else
{
low=mid+1;
}
}
if(flag==0)
{
printf("Value is not found\n");
}
else
{
printf("Value is found\n");
}

}
int main()
{
int value;
int a[]={1,2,3,4,5,6,7,8,9,20};
int n=(sizeof(a))/(sizeof(int));
printf("enter the value you want to find\n");
scanf("%d",&value);
b_search(a,n,value);
return 0;
}


Linear Search



#include<stdio.h>
void l_search(int* a,int n,int value)
{
int flag=0,i;

// initilize loop
for(i=0;i<n;i++)
{
if(a[i]==value)
{
flag=1;
}
}

// print value found or not
if(flag==0)
{
printf("Value is not found\n");
}
else
{
printf("Value is found\n");
}
}

int main()
{
int value;

// initialize array and value
int a[]={1,2,3,4,5,6,7,8,9,20};
int n=(sizeof(a))/(sizeof(int));

// get value for finding
printf("enter the value you want to find\n");
scanf("%d",&value);

// define function
l_search(a,n,value);
return 0;
}

Evaluate Postfix


stack.h


#include <stdlib.h>
typedef struct stack
{
    int *values;
    int maxSize;
    int top;
}stack;

stack * createstack(int maxElements)
{
    //create stack
    stack *s;
    s = (stack *)malloc(sizeof(stack));
    
    //initialize
    s->values = (int *)malloc(sizeof(int)*maxElements);
    s->top = -1;
    s->maxSize = maxElements;
    
    //return
    return s;
}

void init(stack *s,int maxElements)
{
    s = (stack *)malloc(sizeof(stack));
    
    //initialize
    s->values = (int *)malloc(sizeof(int)*maxElements);
    s->top = -1;
    s->maxSize = maxElements;
}

void push(stack *s, int n)
{
    if(s->top == s->maxSize)
    {
        printf("stack is Full\n");
    }
    else
    {
        printf("Pushing Value:%d\n",n);

        //increament first then push
        ++s->top;
        s->values[s->top] = n;
    }
    return;
}

int pop(stack *s)
{
    int value;
    if(s->top == -1)
    {
        printf("stack is Empty\n");
    }
    else
    {
        //remove first then decrement
        value = s->values[s->top];
        s->top--;
        printf("Poping value:%d\n",value);
    }
    return  value;
}

void display(stack *s)
{
    int i=0;
    for(i=0;i<=s->top;i++)
    {
        printf("%d ",s->values[i]);
    }
}

imp.c


#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include "stack.h"
int calc(int n1,int n2, char c){
  switch(c)
  {
    case '*':
      return n1*n2;
      break;

    case '/':
      return n1/n2;
      break;

    case '+':
      return n1+n2;
      break;

    case '-':
      return n1-n2;
      break;

    default:
      return 0;
  }
}

void main()
{
  int i=0,value=0;
  stack *s = createstack(10);
  char *exp = "10 10 10 9 * + +";
  for(i=0;i<strlen(exp);i++)
  {
    if(isdigit(exp[i]))
    {
      value = (value * 10) + (exp[i] - '0');
    }
    else if(exp[i] == '+' || exp[i] == '*' || exp[i] == '/' || exp[i] == '-'){
      value = calc(pop(s),pop(s),exp[i]);
    }
    else
    {
      push(s,value);
      value =0;
    }
  }
  printf("%d\n",value);
}

http://bebe.com

Tuesday, 26 July 2016

Tower of hanoi



#include <stdio.h>

// define function towers
void towers(int, char, char, char);

int main()
{
    int num;

    printf("Enter the number of disks : ");
    scanf("%d", &num);
    printf("The sequence of moves involved in the Tower of Hanoi are :\n");
    towers(num, 'A', 'C', 'B');
    return 0;
}
void towers(int num, char frompeg, char topeg, char auxpeg)
{
    if (num == 1)
    {
        printf("\n Move disk 1 from peg %c to peg %c", frompeg, topeg);
        return;
    }
    towers(num - 1, frompeg, auxpeg, topeg);
    printf("\n Move disk %d from peg %c to peg %c", num, frompeg, topeg);
    towers(num - 1, auxpeg, topeg, frompeg);
}