Showing posts with label DS. Show all posts
Showing posts with label DS. Show all posts

Sunday, February 27, 2011

STAKLINK

/*  Write a Program to perform the following operation stack using linklist. */
/* PUSH, POP, ISEMPTY, ISFULL, PEEP */
struct list
{
int info;
struct list *next;
}*start,*q,*node,*p;
#define max 4
void push();
void pop();
int isempty();
int isfull();
void peep();
void disp();
int top=-1,stack[max];
void main()
{

int ret,s1,choice;
clrscr();

start = '\0';

do
{
printf("\n\n1 : Push element in Stack.\n");
printf("2 : Pop an element from stack.\n");
printf("3 : Peep an element into stack.\n");
printf("4 : Exit from Program.\n");
printf("Enter your choice : ");
scanf("%d",&choice);

switch(choice)
{
case 1:
ret = isfull();
if(ret!=1)
push();
disp();
break;
case 2:
ret = isempty();
if(ret != 1)
pop();
disp();
break;
case 3:
ret = isempty();
if(ret != 1)
peep();
disp();
break;
case 4:
exit();
default :
printf("\n\n\t\t######## INVALID CHOICE ##########\n\n");
}

}while(s1);

}



int isfull()
{
if(top == max)
{
printf("\n\n\t\t####### STCK IS OVERFLOW #########\n\n");
return 1;
}
else
return 0;
}


int isempty()
{
if(top == -1)
{
printf("\n\n\t\t####### STCK IS UNDERFLOW #########\n\n");
return 1;
}
else
return 0;
}

void push()
{
int item;
printf("\nEnter an Integer value : ");
scanf("%d",&item);
top = top + 1;

node = (struct list *)malloc(sizeof(struct list));
node->info = item;
node->next = '\0';
p = start;

if (start == '\0')
start = node;
else
{
while(p->next != '\0')
p = p->next;
p->next = node;
}

}

void pop()
{
int item;
q = start;
p = start->next;
while(p->next!='\0')
{
p = p->next;
q = q->next;
}
item = p->info;

if(p==start)
start = '\0';

q->next='\0';
top = top -1;
printf("\n\n\t\t%d is deleted\n",item);
}


void peep()
{
int item,q;
printf("\n\nEnter position : ");
scanf("%d",&q);
p = start;

while(q<=top)
{
p = p->next;
q++;
}

printf("\n\nYour selected Element is %d ",p->info);
}

void disp()
{

p = start;
printf("\n\nStack Contains : ");

while(p!='\0')
{
printf("%d ",p->info);
p = p->next;
}
}


recursive

void main(int n)
{
printf("%d ",n);
n++;
if(n>100)
exit(getch());
main(n);
}

STAARRAY

/*  Write a Program to perform the following operation stack using array. */
/* PUSH, POP, ISEMPTY, ISFULL, PEEP */
#define max 4
void push();
void pop();
int isempty();
int isfull();
void peep();
void disp();
int top=-1,stack[max];
void main()
{
int ret,s1,choice;
clrscr();
do
{
printf("\n\n1 : Push element in Stack.\n");
printf("2 : Pop an element from stack.\n");
printf("3 : Peep an element into stack.\n");
printf("4 : Exit from Program.\n");
printf("Enter your choice : ");
scanf("%d",&choice);

switch(choice)
{
case 1:
ret = isfull();
if(ret!=1)
push();
disp();
break;
case 2:
ret = isempty();
if(ret != 1)
pop();
disp();
break;
case 3:
ret = isempty();
if(ret != 1)
peep();
disp();
break;
case 4:
exit();
default :
printf("\n\n\t\t######## INVALID CHOICE ##########\n\n");
}

}while(s1);

}



int isfull()
{
if(top == max)
{
printf("\n\n\t\t####### STCK IS OVERFLOW #########\n\n");
return 1;
}
else
return 0;
}


int isempty()
{
if(top == -1)
{
printf("\n\n\t\t####### STCK IS UNDERFLOW #########\n\n");
return 1;
}
else
return 0;
}

void push()
{
int item;
printf("\nEnter an Integer value : ");
scanf("%d",&item);
top = top + 1;
stack[top] = item;
}

void pop()
{
int item;
item = stack[top];
top = top -1;
printf("\n\n\t\t%d is deleted\n",item);
}


void peep()
{
int item,p;
printf("\n\nEnter position : ");
scanf("%d",&p);
printf("\n\nYour selected Element is %d ",stack[top-p+1]);
}

void disp()
{
int i;
printf("\n\nStack Contains : ");
for(i=0;i<=top;i++)
printf("%d ",stack[i]);
}



postfix

/*   Write a Program for to evaluate postfix expression    */
char postfix[100];
static i,top;
long int stack[20];
void main()
{
int temp,p;
clrscr();
printf("Enter Postfix Expression : ");
scanf("%s",postfix);

for(i=0;postfix[i]!='\0';i++)
{

if(postfix[i]=='$' || postfix[i]=='^')
{
temp = stack[top-1];
p = stack[top-2];
while(temp>1)
{
stack[top-2] *=p;
temp--;
}
top--;
}
else if(postfix[i] == '+')
{
stack[top-2] += stack[top-1];
top--;
}
else if(postfix[i] == '-')
{
stack[top-2] -= stack[top-1];
top--;
}
else if(postfix[i] == '*')
{
stack[top-2] *= stack[top-1];
top--;
}
else if(postfix[i] == '/')
{
stack[top-2] /= stack[top-1];
top--;
}
else if(postfix[i]!=',')
{
stack[top] = postfix[i]-48;
while(postfix[i+1]!=',')
{
stack[top] *= 10 + postfix[i+1]-48;
i++;
}
top++;
}
}
printf("\nValue of Postfix Expression : %ld",stack[top-1]);
getch();
}






new | DS

#include
#include
#include
void main()
{
int n,i, *p,*q;
clrscr();

printf("Howmany number that u want to store : ");
scanf("%d",&n);
p = new int[n];
q=p;
printf("Enter %d Elements : \n",n);
for(i=0;i {
scanf("%d",p);
p++;
}

printf("An array will Contains : ");
for(i=0;i {
printf("%d ",*q);
q++;
}


getch();
}

GCD

/* Write a Program for to find the GCD of two numbers */
int gcd(int,int)
void main()
{
int no1,no2,ans;
clrscr();
printf("Enter Integer Number : ");
scanf("%d",&no1);
printf("Enter Second Number: ");
scanf("%d",&no2);
ans = gcd(no1,no2);
printf("GCD of two Number is : %d",ans);
getch();
}

int gcd(int m,int n)
{
if(n == 0)
return m;
else
gcd(n,(m%n));
}

Doubly

/*  Write a Program to create doubly linklist */

void first();
void last();
void disp();
void specific();
struct doubly
{
int info;
struct doubly *lptr,*rptr;
}*node,*l,*r,*p;

void main()
{
int item,choice,s1;
clrscr();
printf("Enter an item 99 for stop : ");
scanf("%d",&item);
node = (struct doubly *)malloc( sizeof(struct doubly));
l = r = p = node;
if(item == 99)
r = l = '\0';

while(item!=99)
{
node->info = item;

p->rptr = node; //This two line make left to right link
p = p->rptr;

node->lptr = r; //this three line make right to left link
// r->rptr = node;
r = node;

node->rptr = '\0';
node = (struct doubly *)malloc(sizeof(struct doubly));
scanf("%d",&item);
}

/* The above while loop will create doubly link list whose left node adress
is stored in l and right node address is stored in r */

l->lptr = '\0';
disp(); //Disp function is display left and right traversal.

do
{
printf("\n\n1 : Insert first.\n");
printf("2 : Insert Last.\n");
printf("3 : Insert Specific Position\n");
printf("4 : Exit from Program.\n");
printf("\nEnter Your Choice : ");
scanf("%d",&choice);
switch(choice)
{
case 1:
first();
disp();
break;
case 2 :
last();
disp();
break;
case 3 :
specific();
disp();
break;
case 4 :
exit();
default:
printf("\n\n\t\t######## INVALID CHOICE #########\n\n");
}
printf("\n\nDo you want to continue? if yes, press 1 : ");
scanf("%d",&s1);
}while(s1==1);
}




void disp()
{

p = l;
printf("\nLeft Traversal : ");
while(p!='\0')
{
printf("%d ",p->info);
p = p->rptr;
}

p = r;
printf("\nRight Traversal : ");
while(p!='\0')
{
printf("%d ",p->info);
p = p->lptr;
}

}

void first()
{
int item;
printf("Enter an integer value : ");
scanf("%d",&item);
node = (struct doubly *)malloc( sizeof(struct doubly));
node->lptr = '\0';
node->info = item;


node->rptr = l;
l->lptr = node;
l=node;
if(r == '\0')
r = l;

}
void last()
{
int item;
printf("Enter an integer value : ");
scanf("%d",&item);
node = (struct doubly *)malloc( sizeof(struct doubly));
node->rptr = '\0';
node->info = item;

node->lptr = r;
r->rptr = node;
r=node;
if(l=='\0')
l = r;


}


void specific()
{
int item,z,n=2;
printf("Enter an integer value : ");
scanf("%d",&item);
printf("Enter Position : ");
scanf("%d",&z);
node = (struct doubly *)malloc( sizeof(struct doubly));
node->info = item;
p = l;

if(z==1)
{
node->lptr = '\0';
node->rptr = l;
l->lptr = node;
l=node;
if(r=='\0')
r = l;
}
else
{
while(z>n)
{
p = p->rptr;
if(p == '\0')
{
printf("\n\n\t\tPosition is Not Found\n");
return;
}
z--;
}
if(p->rptr=='\0')
{
node->rptr = '\0';
p->rptr = node;
node->lptr = p;
p = node;
r = p;
}

else
{
p->rptr->lptr = node;
node->rptr = p->rptr;
p->rptr = node;
node->lptr = p;
}
}
}

Bisection method

/* Write a Program to solve equation using Bisection Method */
#include
float bisection(float,float,float);
void main()
{
float xl,xu,ea,fxr;
clrscr();
printf("Enter Lower Bound : ");
scanf("%f",&xl);
printf("Enter Upper Bound : ");
scanf("%f",&xu);
printf("Enter Percentage Error : ");
scanf("%f",&ea);
fxr = bisection(xl,xu,ea);
printf("F(xr) : %.2f",fxr);
getch();
}

float bisection(float xl,float xu,float ea)
{
float xr,fxr,tmp;
do
{
xr = (xl + xu) / 2;
fxr = ((xr*xr*xr) -9 * xr + 1);

if(fxr*xu < 0)
xu = xr;
else if(fxr*xu>0)
xl = xr;
else
xr = 0;

if(fxr<0)
tmp = fxr * -1;
}while(tmp>ea);
return xr;
}

Data structure

620002 Programming Skills – II (DS)

Programming Skills II(DS) All Programs

DS All programs by Lecturer only for suggestion
New! shared by:
Ms. Zarana Upadhyay (Lecturer - NSVKMS MCA College, Visnagar )

DS All programs Collection
shared by: Vipul (SVICS - KADI)

DS All programs Collection
shared by: Chirag M Daxini
(L.J. Institute Of Engineering & Technology - Ahmedabad)

DS programs in C++
shared by: ANAND A PANDYA (SSIT-GandhiNagar)

Different operations on SINGLY LINK LIST
shared by: Ajay A Ardeshana
Lecturer
MCA Department
GARDI VIDYAPITH


Data Structure Programs
shared by: SadikHasan (SVICS -KADI)

Program that implements depth first search algorithm.
Program that implements breadth first search algorithm
Program to find the minimum cost of a spanning tree
Program to find the minimum cost of a spanning tree
(((Download)))
shared by: Sanjay Patel,
Programmer,
CyberQ Consulting,
M-9427320343.

620001 Data Structures (DS)


Full DS by keval.rar
Shared By:Keval Nagaria(JVIMS MCA Jamnagar)


Data Structure By Hiren Vyas.rar
shared by : Hiren Vyas

Objective Questions With Key.pdf
shared by : Vipul Joshi (SVICS - KADI)

ds question bank.rar
shared by : Sandip Patel (ldrp)