Professional Documents
Culture Documents
Patel Institute of
Technology
Data Structure
(3130702)
AY: 2020 - 21
#include<stdio.h>
void ins(int[]);
void del(int[]);
void sort(int[]);
void search(int[]);
int a[10],i,n=10,j;
void main()
int c;
char ch;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
while(1)
printf("enter choice");
scanf("%d",&c);
switch(c)
case 1:
ins(a);
break;
case 2:
del(a);
break;
case 3:
sort(a);
break;
case 4:
search(a);
break;
case 5:
exit(1);
case 6:
display(a);
break;
case 7:
reverse(a);
case 8:
merge(a, 5);
default:
printf("wrong input");
break;
int i,x,pos,n=10;
scanf("%d",&x);
scanf("%d",&pos);
n++;
for(i=n;i>=pos;i--)
a[i]=a[i-1];
a[pos-1]=x;
for(i=0;i<n;i++)
printf("%d\n",a[i]);
int temp;
for(i=0;i<(n-1);i++)
for(j=i+1;j<n;j++)
if(a[i]>a[j])
temp=a[i];
a[i]=a[j];
a[j]=temp;
for(i=0;i<n;i++)
printf("\n%d",i,a[i]);
int p,temp;
scanf("%d",&p);
printf("\n deleted element:%d",a[p]);
for(temp=p;temp<n;temp++)
a[temp]=a[temp+1];
n=n-1;
for(i=0;i<n-1;i++)
printf("\n%d",i,a[i]);
int element;
scanf("%d",&element);
if(a[i]==element)
for (i=1;i<n;i++)
j=i;
printf("%d", a[i]);
}
void reverse(int a[10])
printf("%d\t", a[i]);
int ar2[5],ar3[10];
int i,j,k;
int p=5;
for(i=0;i<p;i++)
scanf("%d",&ar2[i]);
k=0;
j=0;
for(i=0;i<s+p;)
if(ar[j]<ar2[k])
ar3[i]=ar[j];
k++;
else
ar3[k]=ar2[k];
k++;
}
i++;
else if(j==s)
for(;i<s+p;)
ar3[i]=ar2[k];
k++;
i++;
else
for(;i<s+p;)
ar3[i]=ar[j];
j++;
i++;
for(i=0;i<s+p;i++)
printf("%d\n",ar3[i]);
getch();
--> Output
1 (array elements)
2
3
5 (Element to be searched)
Element found
Practical 2
#include<stdio.h>
int list[5],tos=-1,size=4,ch;
int main()
void push();
void display();
void pop();
void peep();
void update();
printf("\n1:Push Operation");
printf("\n2:Display");
printf("\n3:Pop Operation");
printf("\n4:Peep Operation");
printf("\n5:Update Operation");
printf("\n0:Exit");
do
scanf("%d",&ch);
switch(ch)
{
case 0:
exit(0);
case 1:
push();
break;
case 2:
display();
break;
case 3:
pop();
break;
case 4:
peep();
break;
case 5:
update();
break;
while(ch!=0);
void push()
int value;
if(tos>=size)
return;
else
scanf("%d",&value);
tos=tos+1;
list[tos]=value;
void display()
int i;
if(tos==-1)
return;
else
for(i=0;i<=tos;i++)
void pop()
if(tos==0)
return;
else
tos=tos-1;
void peep()
{
int s;
scanf("%d",&s);
if(tos-s<=-1)
return;
else
void update()
int it1,it2;
scanf("%d",&it1);
scanf("%d",&it2);
if(tos-it1<=-1)
return;
else
list[tos-it1]=it2;
printf("\nUpdte Successfull.....");
}
~ > Output
1.Push
2.Pop
3.Display
4.Exit
1.Push
2.Pop
3.Display
4.Exit
Stack Menu
1.Push
2.Pop
3.Display
4.Exit
Stack is
...
1.Push
2.Pop
3.Display
4.Exit
Deleted element is 6
1.Push
2.Pop
3.Display
4.Exit
Stack is
...
1.Push
2.Pop
3.Display
4.Exit
Deleted element is 3
1.Push
2.Pop
3.Display
4.Exit
Stack is empty!!
Practical 3
#include<stdio.h>
char stack[20];
void push(char x)
stack[++top] = x;
char pop()
if(top == -1)
return -1;
else
return stack[top--];
int priority(char x)
if(x == '(')
return 0;
return 1;
return 2;
main()
char exp[20];
char *e, x;
scanf("%s",exp);
e = exp;
while(*e != '\0')
if(isalnum(*e))
printf("%c",*e);
push(*e);
printf("%c", x);
else
printf("%c",pop());
push(*e);
e++;
while(top != -1)
printf("%c",pop());
--> Output
Enter infix : A + B + C + D
Prefix : +++ABCD
Stack underflow
Enter infix : (9 + 8) * (5 + 6)
Prefix : *+98+56
#include<stdio.h>
#include<conio.h>
#include<ctype.h>
float st[max];
int top=-1;
void main()
float val;
char exp[100];
clrscr();
fflush(stdin);
gets(exp);
val=evapostexp(exp);
getch();
int i;
float op1,op2,value;
for(i=0;exp[i]!='\0';i++)
{
if(isdigit(exp[i]))
push(st,(float)(exp[i]-'0'));
else
op2=pop(st);
op1=pop(st);
switch(exp[i])
case '+':
value=op1 + op2;
break;
case '-':
value=op1 - op2;
break;
case '*':
value=op1 * op2;
break;
case '/':
value=op1 / op2;
break;
push(st,value);
return(pop(st));
if(top==max-1)
else
top++;
st[top]=val;
float val;
if(top==-1)
else
val=st[top];
top--;
return val;
--> Output
#define MAX 50
Void insert();
Void delete();
Void display();
Int queue_array[MAX];
Int rear = - 1;
Int front = - 1;
Main()
Int choice;
While (1)
Printf(“4.Quit \n”);
Scanf(“%d”, &choice);
Switch (choice)
Case 1:
Insert();
Break;
Case 2:
Delete();
Break;
Case 3:
Display();
Break;
Case 4:
Exit(1);
Default:
Void insert()
Int add_item;
If (rear == MAX – 1)
else
If (front == - 1)
Front = 0;
Scanf(“%d”, &add_item);
Rear = rear + 1;
Queue_array[rear] = add_item;
Void delete()
Return ;
}
Else
Front = front + 1;
Void display()
Int I;
If (front == - 1)
Else
Printf(“Queue is : \n”);
Printf(“%d “, queue_array[i]);
Printf(“\n”);
--> Output
1.lnsertion
2.Deletion
3.Display
4.Exit
Enter no 1:10
Enter no 2: 54
Enter no 4: 234
10 54 98 234
Deleted Element is 10
54 98 234
Practical 6
#include <stdio.h>
#define MAX 5
int cqueue_arr[MAX];
return;
if (front == -1)
{
front = 0;
rear = 0;
else
if (rear == MAX - 1)
rear = 0;
else
rear = rear + 1;
cqueue_arr[rear] = item;
void deletion()
if (front == -1)
printf("Queue Underflown");
return;
if (front == rear)
front = -1;
rear = -1;
else
if (front == MAX - 1)
front = 0;
else
front = front + 1;
}
void display()
if (front == -1)
printf("Queue is emptyn");
return;
front_pos++;
else
front_pos++;
front_pos = 0;
front_pos++;
printf("n");
int main()
{
int choice, item;
do
printf("1.Insert \n");
printf("2.Delete \n");
printf("3.Display \n");
printf("4.Quit\n");
scanf("%d", &choice);
switch (choice)
case 1:
scanf("%d", &item);
insert(item);
break;
case 2:
deletion();
break;
case 3:
display();
break;
case 4:
break;
default:
printf("Wrong choicen");
return 0;
--> Output
1.interest
2.delete
3.display
4.quit
1.interest
2.delete
3.display
4.quit
1.interest
2.delete
3.display
4.quit
Queue elements
34 45
1.interest
2.delete
3.display
4.quit
Practical 7
#include<stdlib.h>
#include <stdio.h>
void create();
void display();
void insert_begin();
void insert_end();
void insert_pos();
void delete_begin();
void delete_end();
void delete_pos();
struct node
int info;
};
int main()
int choice;
while(1){
printf("\nMENU\n");
printf("\n 9.Exit\n");
printf("\n--------------------------------------\n");
switch(choice)
case 1:
create();
break;
case 2:
display();
break;
case 3:
insert_begin();
break;
case 4:
insert_end();
break;
case 5:
insert_pos();
break;
case 6:
delete_begin();
break;
case 7:
delete_end();
break;
case 8:
delete_pos();
break;
case 9:
exit(0);
break;
default:
printf("n Wrong Choice:n");
break;
return 0;
void create()
if(temp==NULL)
exit(0);
scanf("%d",&temp->info);
temp->next=NULL;
if(start==NULL)
start=temp;
else
ptr=start;
while(ptr->next!=NULL)
ptr=ptr->next;
ptr->next=temp;
void display()
{
if(start==NULL)
printf("nList is empty:n");
return;
else
ptr=start;
while(ptr!=NULL)
printf("%dt",ptr->info );
ptr=ptr->next ;
void insert_begin()
if(temp==NULL)
return;
scanf("%d",&temp->info);
temp->next =NULL;
if(start==NULL)
start=temp;
}
else
temp->next=start;
start=temp;
void insert_end()
if(temp==NULL)
return;
scanf("%d",&temp->info );
temp->next =NULL;
if(start==NULL)
start=temp;
else
ptr=start;
while(ptr->next !=NULL)
ptr=ptr->next ;
ptr->next =temp;
}
void insert_pos()
int i,pos;
if(temp==NULL)
return;
scanf("%d",&pos);
scanf("%d",&temp->info) ;
temp->next=NULL;
if(pos==0)
temp->next=start;
start=temp;
else
for(i=0,ptr=start;i<pos-1;i++) { ptr=ptr->next;
if(ptr==NULL)
return;
temp->next =ptr->next ;
ptr->next=temp;
}
}
void delete_begin()
if(ptr==NULL)
printf("nList is Empty:n");
return;
else
ptr=start;
start=start->next ;
free(ptr);
void delete_end()
if(start==NULL)
printf("nList is Empty:");
exit(0);
ptr=start;
start=NULL;
free(ptr);
else
{
ptr=start;
while(ptr->next!=NULL)
temp=ptr;
ptr=ptr->next;
temp->next=NULL;
free(ptr);
void delete_pos()
int i,pos;
if(start==NULL)
exit(0);
else
scanf("%d",&pos);
if(pos==0)
ptr=start;
start=start->next ;
free(ptr);
else
{
ptr=start;
if(ptr==NULL)
return;
temp->next =ptr->next ;
free(ptr);
--> Output
17864
178645
Ascending order
145678
Deleting node at 5
14567
Practical 8
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
struct node
int data;
};
int main()
int option;
clrscr();
do
printf("\n 9: EXIT");
scanf("%d", &option);
switch(option)
break;
break;
break;
break;
break;
break;
break;
break;
}while(option !=9);
getch();
return 0;
scanf("%d", &num);
while(num!=–1)
if(start == NULL)
start = new_node;
else
{ ptr = start;
scanf("%d", &num);
return start;
ptr=start;
return start;
int num;
scanf("%d", &num);
ptr = start;
start = new_node;
return start;
int num;
scanf("%d", &num);
ptr = start;
return start;
ptr = start;
free(start);
return start;
ptr = start;
preptr = ptr;
free(ptr);
return start;
int val;
printf("\n Enter the value after which the node has to deleted : ");
scanf("%d", &val);
ptr = start;
preptr = ptr;
preptr = ptr;
if(ptr == start)
free(ptr);
return start;
ptr = start;
start = delete_end(start);
free(start);
return start;
--> Output
82317
482317
4823175
482317
Practical 9
#include <stdio.h>
Int main()
Scanf(“%d”, &n);
Scanf(“%d”, &array[c]);
Scanf(“%d”, &search);
First = 0;
Last = n – 1;
Middle = (first+last)/2;
First = middle + 1;
Else
Last = middle – 1;
Return 0;
--> OutPut
Enter 7 integers
-4
11
43
485
11
11 fund at location 5.
Practical 10
#include<stdio.h>
Int main()
Scanf(“%d”,&count);
For(i=0;i<count;i++)
Scanf(“%d”,&number[i]);
*/
For(i=count-2;i>=0;i--){
For(j=0;j<=I;j++){
If(number[j]>number[j+1]){
Temp=number[j];
Number[j]=number[j+1];
Number[j+1]=temp;
For(i=0;i<count;i++)
Printf(“ %d”,number[i]);
Return 0;
--> Output:
Enter 5 numbers:
24675
Sorted elements: 2 4 5 6 7