Showing posts with label Pointer. Show all posts
Showing posts with label Pointer. Show all posts

WAP of pointer with increament & decreament


#include<stdio.h>
#include<conio.h>

void main()

{
	int x=5,y=10,*a,*b,*c;
	clrscr();
	a = &y;   printf("y:%d",y);
	b = &x;   printf("x:%d",x);
	*a = ++y - x++; 

printf("\ny:%d",y);
printf("x:%d",x);
printf("a:%d",*a);
	*b = --y + x--; 

printf("\ny:%d",y);
printf("x:%d",x);
printf("b:%d",*b);
	x=(*a + *b)+(*a - *b);
	*c = *b;
	printf("\nx=%d and y=%d",x,y);
	getch();
}

WAP to illustrate the use of pointers using while loop


#include<stdio.h>
#include<conio.h>

main()
{

	char a[] = "Hello World";
	char *ap = "Goodbye world";

	int i=0;

	while (*ap)
	{
		printf("Addr: %X, %c\n",ap, *ap);
		ap++;
	}

	while (a[i])
	{
		printf("Addr: %X, %c\n",a+i, a[i]);
		i++;
	}

}

WAP to illustrate the use of POINTERS (character pointer & integer pointer)


#include<conio.h>
#include<conio.h>
void main()
{
	char ch='x';
	char *c;
	int a=20;
	int *ptr;
	ptr=&a;
	c=&ch;
	clrscr();
	printf("%d",ch);
	printf("%d",ptr);
	getch();
}

wap to find number of odd, even & zero numbers from given 10 int numbers


/*wap to find number of odd, even & zero numbers from given 10 int numbers*/
#include<stdio.h>
#include<conio.h>

void main()

{
	int n[10],i,count1=0,count2=0,count3=0;
	clrscr();
	printf("enter any 10 int numbers:\n");

	for(i=0;i<10;i++)
	{
		scanf("%d",&n[i]);
	}

	for(i=0;i<10;i++)
	{
		if(n[i]==0)
			count1++;
		else if(n[i]%2==0)
			count2++;
		else if(n[i]%2!=0)
			count3++;
	}

	printf("odd numbers:%d",count3);
	printf("\neven numbers:%d",count2);
	printf("\nzero numbers:%d",count1);

	getch();
}

WAP to Create Single Linked List


#include <stdlib.h>
#include <string.h>
#include<stdio.h>
#include<conio.h>
typedef struct node {
 int sid;
 char sname[25];
 int ssem;
 struct node *link;
} NODE;

NODE *InsFront(NODE *, int, char *, int);
NODE *InsBack(NODE *, int, char *, int);
NODE *InsPos(NODE *, int, char *, int, int);
NODE *DelNode(NODE *, int);
NODE *SrchUpdate(NODE *, int);
void Display(NODE *);

main() {
 NODE *start = NULL; /* Main Program */
 int opn, id, sem, p, insopn;
 char name[25];
 do {
  clrscr();
  printf("\n ### Linked List Operations ### \n\n");
  printf("\n Press 1-Insertion, 2-Deletion, 3-Search, 4-Display,5-Exit\n");
  printf("\n Your option ? ");
  scanf("%d", &opn);
  switch (opn) {
  case 1:
   printf("Insertion at: Press 1->Front 2->Back 3->Pos ? ");
   scanf("%d", &insopn);
   printf("\n\nRead the Sid,Name, and Sem details ?");
   scanf("%d%s%d", &id, name, &sem);
   if (insopn == 1)
    start = InsFront(start, id, name, sem);
   else if (insopn == 2)
    start = InsBack(start, id, name, sem);
   else if (insopn == 3) {
    printf(" At What Position ? ");
    scanf("%d", &p);
    start = InsPos(start, id, name, sem, p);
   }
   break;

  case 2:
   printf(" Read the Student Id of the Node to be deleted ? ");
   scanf("%d", &id);
   start = DelNode(start, id);
   break;
  case 3:
   printf(" Read the Student Id of the Node to be Searched ? ");
   scanf("%d", &id);
   start = SrchUpdate(start, id);
   break;
  case 4:
   printf(" Linked List is \n");
   Display(start);
   break;
  case 5:
   printf("\n\n Terminating \n\n");
   break;
  default:
   printf("\n\nInvalid Option !!! Try Again !! \n\n");
   break;
  }
  printf("\n\n\n\n  Press a Key to Continue . . . ");
  getch();
 } while (opn != 5);
}

NODE *InsFront(NODE *st, int id, char *name, int sem) {
 NODE *temp;
 temp = (NODE *) malloc(sizeof(NODE));
 if (temp == NULL) {
  printf(" Out of Memory !! Overflow !!!");
  return (st);
 } else {
  temp->sid = id;
  strcpy(temp->sname, name);
  temp->ssem = sem;
  temp->link = st;
  printf(" Node has been inserted at Front Successfully !!");
  return (temp);
 }
}

NODE *InsBack(NODE *st, int id, char *name, int sem) {
 NODE *temp, *t;
 temp = (NODE *) malloc(sizeof(NODE));
 if (temp == NULL) {
  printf(" Out of Memory !! Overflow !!!");
  return (st);
 } else {
  temp->sid = id;
  strcpy(temp->sname, name);
  temp->ssem = sem;
  temp->link = NULL;
  if (st == NULL)
   return (temp);
  else {
   t = st;
   while (t->link != NULL)
    t = t->link;
   t->link = temp;
   printf(" Node has been inserted at Back Successfully !!");
   return (st);
  }
 }
}

NODE *InsPos(NODE *st, int id, char *name, int sem, int pos) {
 NODE *temp, *t, *prev;
 int cnt;
 temp = (NODE *) malloc(sizeof(NODE));
 if (temp == NULL) {
  printf(" Out of Memory !! Overflow !!!");
  return (st);
 } else {
  temp->sid = id;
  strcpy(temp->sname, name);
  temp->ssem = sem;
  temp->link = NULL;
  if (pos == 1) /* Front Insertion */
  {
   temp->link = st;
   return (temp);
  } else {
   t = st;
   cnt = 1;
   while (t != NULL && cnt != pos) {
    prev = t;
    t = t->link;
    cnt++;
   }
   if (t) /* valid Position  Insert new node*/
   {
    prev->link = temp;
    temp->link = t;
   } else
    printf(" Invalid Position !!!");
   printf(" Node has been inserted at given Position  Successfully !!");
   return (st);
  }
 }
}
NODE *DelNode(NODE *st, int id) {
 NODE *t, *prev;
 if (st == NULL) {
  printf(" Underflow!!!");
  return (st);
 } else {
  t = st;
  if (st->sid == id) /* Front Deletion */
  {
   st = st->link;
   t->link = NULL;
   free(t);
   return (st);
  } else {
   while (t != NULL && t->sid != id) {
    prev = t;
    t = t->link;
   }
   if (t) /* node to be deleted  found*/
   {
    prev->link = t->link;
    t->link = NULL;
    free(t);
   } else
    printf(" Invalid Student Id !!!");
   return (st);
  }
 }
}

NODE *SrchUpdate(NODE *st, int id) {
 NODE *t;
 if (st == NULL) {
  printf(" Empty List !!");
  return (st);
 } else {
  t = st;
  while (t != NULL && t->sid != id) {
   t = t->link;
  }
  if (t) /* node to be Updated found*/
  {
   printf(" Node with Student Id %d found inthe List !\n", id);
   printf(" Read the New Id,Name and Sem forthe Student\n");
   scanf("%d%s%d", t->sid, t->sname, t->ssem);
  } else
   printf(" Invalid Student Id !!!");
  return (st);
 }
}

void Display(NODE *st) {
 NODE *t;
 if (st == NULL)
  printf("Empty List\n");
 else {
  t = st;
  printf("Start->");
  while (t) {
   printf("[%d,%s,%d]->", t->sid, t->sname, t->ssem);
   t = t->link;
  }
  printf("Null\n");
 }
}

WAP to create double linked list : C Application

/*WAP to create double linked list*/
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct node
{
 int data;
 struct node *llink;
 struct node *rlink;
};
typedef struct node node;
void create(node *);
void display(node *);
void search(node *);
void insert_any(node *);
void delete_any(node *);

void main()
{
 node *header=NULL;
 int n;
 char c='y';
 clrscr();
 while(c=='y')
 {
  printf("\n1.Create\n2.Search\n3.display\n4.insert any\n5.Delete\n6.exit\nEnter your choice:");
  scanf("%d",&n);
  switch(n)
  {
   case 1:
   {
    header=(node*)malloc(sizeof(node));
    header->data=NULL;
    header->llink=NULL;
    header->rlink=NULL;
    create(header);
    break;
   }
   case 2:
   {
    search(header);
    break;
   }
   case 3:
   {
    display(header);
    break;
   }
   case 4:
   {
    insert_any(header);
    break;
   }
   case 5:
   {
    delete_any(header);
    break;
   }
   case 6:
   {
    exit(0);
   }
  }
 }
 getch();
}
void create(node *temphead)
{
 node *temp;
 char a='y';
 while(a=='y')
 {
  temp=(node *)malloc(sizeof(node));
  printf("Enter data:");
  scanf("%d",&temp->data);
  temp->rlink=NULL;
  temphead->llink=temphead;
  temphead->rlink=temp;
  printf("Do you want to create more??????");
  fflush(stdin);
  scanf("%c",&a);
  temphead=temp;
 }
}
void display(node *temphead)
{
 while(temphead!=NULL)
 {
  printf("\n%d",temphead->data);
  temphead=temphead->rlink;
 }
}
void search(node *temphead)
{
 int key,found=0;
 printf("Enter number you want to find:");
 scanf("%d",&key);
 while(temphead!=NULL)
 {

  if(temphead->data==key)
  {
   printf("\nSearch is sucessfull");
   found+=1;
   break;
  }
  temphead=temphead->rlink;
 }
 if(found==0)
 {
  printf("Search is unsucessfull");
 }
}
void insert_any(node *temphead)
{
 int key;
 node *temp;
 node *temp1;
 printf("After which number you want to insert?????");
 scanf("%d",&key);
 while(temphead->rlink!=NULL && temphead->data!=key)
 {
  temphead=temphead->rlink;
 }
 if(temphead->data!=key)
 {
  printf("Value not found insertion not possible");
 }
 else
 {
  temp=(node *)malloc(sizeof(node));
  printf("Enter data:");
  scanf("%d",&temp->data);
  temp1=temphead->rlink;
  temp->llink=temphead;
  temp->rlink=temp1;
  temphead->rlink=temp;
  printf("Insert sucessfully\n");
  if(temp1!=NULL)
  {
   temphead->llink=temp;
  }
 }
}



void delete_any(node *temphead)
{
 node *temp;
 node *p;
 int key;
 printf("Enter the value which you want to delete:");
 scanf("%d",&key);
 while(temphead->rlink!=NULL && temphead->data!=key)
 {
  temp=temphead;
  temphead=temphead->rlink;
 }
 if(temphead->data==key)
 {
  node *temp1;
  temp1=temphead->rlink;
  temp->rlink=temp1;
  temp1->llink=temp;
  free(temphead);
 }
 else
 {
  printf("Value not found......");
 }
}

WAP to create double linked list


/*WAP to create double linked list*/
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct node
{
 int data;
 struct node *llink;
 struct node *rlink;
};
typedef struct node node;
void create(node *);

void main()
{
 node *header=NULL;
 int n;
 clrscr();
    header=(node*)malloc(sizeof(node));
    header->data=NULL;
    header->llink=NULL;
    header->rlink=NULL;
    create(header);
 
 getch();
}
void create(node *temphead)
{
 node *temp;
 char a='y';
 while(a=='y')
 {
  temp=(node *)malloc(sizeof(node));
  printf("Enter data:");
  scanf("%d",&temp->data);
  temp->rlink=NULL;
  temphead->llink=temphead;
  temphead->rlink=temp;
  printf("Do you want to create more??????");
  fflush(stdin);
  scanf("%c",&a);
  temphead=temp;
 }
}

WAP to display from double linked list


/*WAP to display from double linked list*/
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct node
{
 int data;
 struct node *llink;
 struct node *rlink;
};
typedef struct node node;
void display(node *);
void main()
{
 node *header=NULL;
 int n;
 clrscr();
    display(header);
 
 getch();
}

void display(node *temphead)
{
 while(temphead!=NULL)
 {
  printf("\n%d",temphead->data);
  temphead=temphead->rlink;
 }
}

WAP to search any node from double linked list


/*WAP to search any node from double linked list*/
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct node
{
 int data;
 struct node *llink;
 struct node *rlink;
};
typedef struct node node;
void search(node *);

void main()
{
 node *header=NULL;
 int n;
 clrscr();
    search(header);
 
 getch();
}

void search(node *temphead)
{
 int key,found=0;
 printf("Enter number you want to find:");
 scanf("%d",&key);
 while(temphead!=NULL)
 {

  if(temphead->data==key)
  {
   printf("\nSearch is sucessfull");
   found+=1;
   break;
  }
  temphead=temphead->rlink;
 }
 if(found==0)
 {
  printf("Search is unsucessfull");
 }
}

WAP to insert any from double linked list

/*WAP to insert any from double linked list*/
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct node
{
 int data;
 struct node *llink;
 struct node *rlink;
};
typedef struct node node;
void insert_any(node *);

void main()
{
 node *header=NULL;
 int n;
 clrscr();
    insert_any(header);
  
 getch();
}

void insert_any(node *temphead)
{
 int key;
 node *temp;
 node *temp1;
 printf("After which number you want to insert?????");
 scanf("%d",&key);
 while(temphead->rlink!=NULL && temphead->data!=key)
 {
  temphead=temphead->rlink;
 }
 if(temphead->data!=key)
 {
  printf("Value not found insertion not possible");
 }
 else
 {
  temp=(node *)malloc(sizeof(node));
  printf("Enter data:");
  scanf("%d",&temp->data);
  temp1=temphead->rlink;
  temp->llink=temphead;
  temp->rlink=temp1;
  temphead->rlink=temp;
  printf("Insert sucessfully\n");
  if(temp1!=NULL)
  {
   temphead->llink=temp;
  }
 }
}

WAP to delet any double linked list


/*WAP to delet any node from double linked list*/
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct node
{
 int data;
 struct node *llink;
 struct node *rlink;
};
typedef struct node node;
void delete_any(node *);

void main()
{
 node *header=NULL;
 int n;
 clrscr();

    delete_any(header);
  
 getch();
}


void delete_any(node *temphead)
{
 node *temp;
 node *p;
 int key;
 printf("Enter the value which you want to delete:");
 scanf("%d",&key);
 while(temphead->rlink!=NULL && temphead->data!=key)
 {
  temp=temphead;
  temphead=temphead->rlink;
 }
 if(temphead->data==key)
 {
  node *temp1;
  temp1=temphead->rlink;
  temp->rlink=temp1;
  temp1->llink=temp;
  free(temphead);
 }
 else
 {
  printf("Value not found......");
 }
}