Tuesday, 18 March 2014

implementation of stack using array .
#include<stdlib.h>
#include<stdio.h>
int push(int);
int display();
int pop(int);
int stack[10];
static int pos=0;
int main()
{
    int a;
    char ch='n';
    do
    {
        printf("1->push\n");
        printf("2->pop\n");
        printf("3->display\n");
        scanf("%d",&a);
        switch(a)
        {
            case 1:
            pos=push(pos);
            break;
            case 2:
            pos=pop(pos);
            break;
            case 3:
            display();
            break;
            default:
            printf("wrong choice");
        }
        printf("\n press any key to continue and press n to quit->");
        scanf("%s",&ch);
    }while (ch!='n');
    return 0;
}

int push(pos)
{
    int limit,i;
    printf("enter how many elements you want to push->");
    scanf("%d",&limit);
    printf("enter %d elements\n",limit);
    for(i=1;i<=limit;i++)
    {
        if(pos<10)
        {
            scanf("%d",&stack[pos]);
            printf(" %d is pushed \n",stack[pos]);
            pos++;
        }
        else
        printf("\n stack overflow...\n");
    }
    return pos;
}
int pop(pos)
{
    int limit,i;
    printf("enter how many elements you want to pop->");
    scanf("%d",&limit);
    for(i=1;i<=limit;i++)
    {
        if(pos>0)
        {
            pos--;
            printf(" %d is pushed \n",stack[pos]);
            stack[pos]=0;
        }
        else
        printf("\n stack underflow...\n");
    }
    return pos;
}
int display()
{
    int i,j=9;
    for(i=9;i>=0;i--)
    {
        printf(" %d\t%d\n",j--,stack[i]);
    }
    return 0;
}




Friday, 14 March 2014

write a program to create a doubly link list.
1->creation.
2->insertion
3->deletion.

#include<stdio.h>
#include<stdlib.h>
void creation(void);
void display(void);
void create_node(void);
void insert_end(void);
void insert_beginning(void);
void insert_middle(void);
void deletion(void);
struct link_list
{
    int data;
    struct link_list *next;
    struct link_list *prev;
}*start=NULL;
typedef struct link_list node;
node *current,*nnew;

int main()
{
    int a;
    char ch;
    creation();
    do
    {
        printf("\n enter your choice\n1->display\n2->insert at end\n3->insert at beginning\n4->insert b/w two nodes\n5->deletion\n");
        scanf("%d",&a);
        switch(a)
        {
            case 1:
            display();
            break;
            case 2:
            insert_end();
            break;
            case 3:
            insert_beginning();
            break;
            case 4:
            insert_middle();
            break;
            case 5:
            deletion();
            break;
            default:
            printf("wrong choice");
        }
        printf("\n press any key to continue and press n to quit");
        scanf("%s",&ch);
    }while(ch!='n');
    return (0);
}

void creation(void)
{
    int i=0,k;
    printf("how many nodes you want to create");
    scanf("%d",&i);
    while(i!=0)
    {
        nnew=malloc(sizeof(node));
        nnew->next=NULL;
        nnew->prev=NULL;
        if(start==NULL)
        {
            printf("enter any integer data");
            scanf("%d",&k);
            nnew->data=k;
            start=nnew;
            current=start;
        }
        else
        {
            printf("enter any integer data");
            scanf("%d",&k);
            nnew->data=k;
            current->next=nnew;
            nnew->prev=current;
            current=nnew;
        }
        i--;
    }
}

void create_node(void)
{
    int k;
    nnew=malloc(sizeof(node));
    nnew->next=NULL;
    nnew->prev=NULL;
    printf("enter the data for this node");
    scanf("%d",&k);
    nnew->data=k;
}

void display(void)
{
    int l;
    printf("enter 1 to display list from beginning and 2 to display it from last");
    scanf("%d",&l);
    current=start;
    if(l==1)
    {
        int i=1;
        while(current!=NULL)
        {
            printf("%d:: %d\n",i ,current->data);
            current=current->next;
            i++;
        }
    }
    if(l==2)
    {
        int i=1;
        current=start;
        while(current->next!=NULL)
        {
            current=current->next;
            i++;
        }
        do
        {
            printf("%d:: %d\n",i ,current->data);
            current=current->prev;
            i--;
        }while(current!=NULL);
    }
}

void insert_end(void)
{
    create_node();
    current=start;
    while(current->next!=NULL)
    {
        current=current->next;
    }
    if(current->next==NULL)
    {
        current->next=nnew;
        nnew->prev=current;
        current=nnew;
        printf("node inserted successfully");
    }
}
void insert_beginning(void)
{
    create_node();
    nnew->next=start;
    start=nnew;
    printf("node inserted successfully\n");
}

void insert_middle(void)
{
    int a,i,pos;
    current=start;
    printf("enter the serial number of node accept first and the last node ");
    scanf("%d",&pos);
    printf("enter 1 to insert after the selected node and 2 for before ");
    scanf("%d",&a);
    if(a==1)
    {
        current=start;
        for(i=1;i<pos;i++)
        {
            current=current->next;
        }
        nnew->next=current->next;
        nnew->prev=current;
        current->next=nnew;
    }
    else if(a==2)
    {
        current=start;
        for(i=1;i<pos-1;i++)
        {
            current=current->next;
        }
        nnew->next=current->next;
        nnew->prev=current;
        current->next=nnew;
    }
    else
    {
        printf("wrong choice");
    }
}
void deletion(void)
{
    int y,i;
    current=start;
    printf("enter the serial number of node you want to delete ");
    scanf("%d",&y);
    if(y==1)
    {
        start=start->next;
    }
    else
    {
        for(i=1;i<y-1;i++)
        {
            current=current->next;
        }
        if(current->next->next==NULL)
        {
            current->next=NULL;
        }
        else
        {
            current->next=current->next->next;
        }
    }
    printf("node is deleted");
}




Thursday, 13 March 2014

/*Write a program to create a singly linked list.
1->Creation.
2->insertion.
3->deletion.*/
#include<stdio.h>
#include<stdlib.h>
void creation();
void display();
void insert_end();
void insert_beginning();
void insert_middle();
void deletion();
struct link_list
{
    int data;
    struct link_list *next;
}*start=NULL;
typedef struct link_list node;
node *current,*nnew;
void main()
{
    int a;
    char ch;
    clrscr();
    creation();
    do
    {
        printf("\nenter your choice\n1->display\n2->insert at end\n3->insert at beginning\n4->insert b/w two nodes\n5->deletion\n");
        scanf("%d",&a);
        switch(a)
        {
            case 1:
            display();
            break;
            case 2:
            {
                insert_end();
            }
            break;
            case 3:
            {
                insert_beginning();
            }
            break;
            case 4:
            {
                insert_middle();
            }
            break;
            case 5:
            {
                deletion();
            }
            break;
            default:
            printf("wrong choice");
        }
        printf("\npress any key to continue and press n to quit");
        scanf("%s",&ch);
    }while(ch!='n');
}

void creation()
{
    int i=0,k;
    printf("how many nodes you want to create ");
    scanf("%d",&i);
    while(i!=0)
    {
        nnew=(node*)malloc(sizeof(node));
        nnew->next=NULL;
        if(start==NULL)
        {
            printf("enter any integer data ");
            scanf("%d",&k);
            nnew->data=k;
            start=nnew;
            current=start;
        }
        else
        {
            printf("enter any integer data ");
            scanf("%d",&k);
            nnew->data=k;
            current->next=nnew;
            current=nnew;
        }
        i--;
    }
}

void display()
{
    int i=1;
    current=start;
    while(current!=NULL)
    {
        printf("%d:: %d\n",i ,current->data);
        current=current->next;
        i++;
    }
    getch();
}

void insert_end()
{
    current=start;
    while(current->next!=NULL)
    {
        current=current->next;
        if(current->next==NULL)
        {
            nnew=(node*)malloc(sizeof(node));
            nnew->next=NULL;
            printf("enter the deta for this node ");
            scanf("%d",&nnew->data);
            current->next=nnew;
            current=nnew;
            printf("node inserted successfully");
        }
    }
}

void insert_beginning()
{
    nnew=(node*)malloc(sizeof(node));
    nnew->next=NULL;
    printf("enter the deta for this node ");
    scanf("%d",&nnew->data);
    nnew->next=start;
    start=nnew;
    printf("node inserted successfully\n");
}
void insert_middle()
{
    int a,i,pos,b;
    current=start;
    nnew=(node*)malloc(sizeof(node));
    nnew->next=NULL;
    printf("enter the deta for this node ");
    scanf("%d",&nnew->data);
    printf("enter the serial number of node accept first and the last node ");
    scanf("%d",&pos);
    printf("enter 1 to insert after the selected node and 2 for before ");
    scanf("%d",&a);
    if(a==1)
    {
        current=start;
        for(i=1;i<pos;i++)
        {
            current=current->next;
        }
        nnew->next=current->next;
        current->next=nnew;
    }
    else if(a==2)
    {
        current=start;
        for(i=1;i<pos-1;i++)
        {
            current=current->next;
        }
        nnew->next=current->next;
        current->next=nnew;
    }
    else
    {
        printf("wrong choice");
    }
}

void deletion()
{
    int y,i;
    current=start;
    printf("enter the serial number of node you want to delete ");
    scanf("%d",&y);
    if(y==1)
    {
        start=start->next;
    }
    for(i=1;i<y-1;i++)
    {
        current=current->next;
    }
    if(current->next->next==NULL)
    {
        current->next=NULL;
    }
    else
    {
        current->next=current->next->next;
    }
    printf("node is deleted");
}





write a program of linear search search.
#include<conio.h>
#include<stdio.h>
void main()
{
    int arr[50],v,i,count=0,f;
    clrscr();
    printf("how many alements you want to enter");
    scanf("%d",&v);
    printf("\nenter %d integer data elements\n",v);
    for(i=0;i<v;i++)
    {
        scanf("%d",&arr[i]);
    }
    printf("enter the element you want to search");
    scanf("%d",&f);
    for(i=0;i<v;i++)
    {
        count++;
        if(arr[i]==f)
        {
            break;
        }
    }
    if(arr[i]==f)
    {
        printf("%d is found at location %d",f,count);
    }
    else
    {
        printf("%d is not present in the enterd elements",f);
    }
    getch();
}
/*write a menu driven program to perform following operations on matrices*/
(1)addition.
(2)multiplication.
(3)transpose.
(4)subtraction.*/
#include<stdio.h>
#include<conio.h>
void main()
{
    int z,i,j,a[5][5],b[5][5],c[5][5],k,l,m,n,sum,o;
    char ch;
    clrscr();
    do{
        printf("chose any option\n1:addition\n2:multiplication\n3:transpose\n4:subtraction");
        scanf("%d",&z);
        switch(z)
        {
            case 1:
            printf("enter row and column of 1st matrix\n");
            scanf("%d %d",&k,&l);
            printf("enter row and column of 2nd matrix\n");
            scanf("%d %d",&m,&n);
            printf("enter 1st matrix\n");
            for(i=0;i<k;i++)
            {
                for(j=0;j<l;j++)
                {
                    scanf("%d",&a[i][j]);
                }
            }
            printf("enter 2nd matrix\n");
            for(i=0;i<m;i++)
            {
                for(j=0;j<n;j++)
                {
                    scanf("%d",&b[i][j]);
                }
            }
            printf("addition is\n");
            for(i=0;i<k;i++)
            {
                for(j=0;j<n;j++)
                {
                    c[i][j]=a[i][j]+b[i][j];
                    printf("%d \t",c[i][j]);
                }
                printf("\n");
            }
            break;
            case 2:
            printf("enter row and column of 1st matrix\n");
            scanf("%d %d",&k,&l);
            printf("enter row and column of 2nd matrix\n");
            scanf("%d %d",&m,&n);
            printf("enter 1st matrix\n");
            for(i=0;i<k;i++)
            {
                for(j=0;j<l;j++)
                {
                    scanf("%d",&a[i][j]);
                }
            }
            printf("enter 2nd matrix\n");
            for(i=0;i<m;i++)
            {
                for(j=0;j<n;j++)
                {
                    scanf("%d",&b[i][j]);
                }
            }
            for(i=0;i<k;i++)
            {
                for(j=0;j<m;j++)
                {
                    c[i][j]=0;
                    for(o=0;o<n;o++)
                    {
                        c[i][j]=c[i][j]+(a[i][o]*b[o][j]);
                    }
                }
            }
            for(i=0;i<k;i++)
            {
                for(j=0;j<n;j++)
                {
                    printf("%d \t",c[i][j]);
                }
                printf("\n");
            }
            break;
            case 3:
            printf("enter row and column of matrix\n");
            scanf("%d %d",&k,&l);
            printf("enter the matrix\n");
            for(i=0;i<l;i++)
            {
                for(j=0;j<k;j++)
                {
                    scanf("%d",&a[i][j]);
                }
            }
            printf("\ntranspose is:\n");
            for(i=0;i<l;i++)
            {
                for(j=0;j<k;j++)
                {
                    c[i][j]=a[j][i];
                    printf("%d \t",c[i][j]);
                }
                printf("\n");
            }
            break;
            case 4:
            printf("enter row and column of 1st matrix\n");
            scanf("%d %d",&k,&l);
            printf("enter row and column of 2nd matrix\n");
            scanf("%d %d",&m,&n);
            printf("enter 1st matrix\n");
            for(i=0;i<k;i++)
            {
                for(j=0;j<l;j++)
                {
                    scanf("%d",&a[i][j]);
                }
            }
            printf("enter 2nd matrix\n");
            for(i=0;i<m;i++)
            {
                for(j=0;j<n;j++)
                {
                    scanf("%d",&b[i][j]);
                }
            }
            printf("subtraction is\n");
            for(i=0;i<k;i++)
            {
                for(j=0;j<n;j++)
                {
                    c[i][j]=a[i][j]-b[i][j];
                    printf("%d \t",c[i][j]);
                }
                printf("\n");
            }
            break;
            default:
            printf("wrong choice");
            break;
        }
        printf("\ndo you want to continue y,n?");
        scanf("%s",&ch);
        ch=tolower(ch);
    }
    while(ch=='y');
    getch();
}