lab manuallab manual course : cs1243 data structures lab class : b.sc computer science semester : 2...
TRANSCRIPT
![Page 1: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/1.jpg)
LAB MANUAL
Course : CS1243 Data Structures Lab
Class : B.Sc Computer Science
Semester : 2
Prepared By : Nidhi S
COLLEGE OF APPLIED SCIENCE
PERISSERY
![Page 2: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/2.jpg)
CS 1243: Data Structures Lab
P a g e 2 | 52
TABLE OF CONTENTS
1. Array – Insertion …………………………………………………………..03
2. Array – Deletion …………………………………………………………...05
3. Largest and smallest ……………………………………………………….07
4. Linear search ………………………………………………………………09
5. Binary search ………………………………………………………………11
6. Bubble sort ………………………………………………………………...13
7. Insertion sort ……………………………………………………………….15
8. Selection sort ………………………………………………………………17
9. Stack using array …………………………………………………………..19
10. Infix to postfix ……………………………………………………………..22
11. Queue using array ………………………………………………………….24
12. Singly linked list – Insertion ………………………………………………27
13. Singly linked list – Deletion ……………………………………………….31
14. Singly linked list – Search …………………………………………………35
15. Singly linked list – Count the nodes ……………………………………….37
16. Singly linked list – Traversal ………………………………………………39
17. Stack using linked list ……………………………………………………...41
18. Queue using linked list …………………………………………………….44
19. Binary search tree – Traversal ……………………………………………..47
20. Binary search tree – Search ………………………………………………..50
![Page 3: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/3.jpg)
CS 1243: Data Structures Lab
P a g e 3 | 52
1. ARRAY - INSERTION
Aim:
To write a c program to insert an item into an array.
Program:
#include <stdio.h>
void main()
{
int a[20], size, pos, item, i;
clrscr();
printf("\nEnter the size of array:\t");
scanf("%d", &size);
printf("\nEnter %d element:\n", size);
for(i = 0; i < size; i++)
scanf("%d", &a[i]);
printf("Enter the new item for insertion and its position in array:\n");
scanf("%d%d", &item, &pos);
if(pos >= 0 && pos < size)
{
for(i = size; i > pos; i--)
a[i] = a[i - 1];
a[pos] = item;
size++;
printf("\nArray after insertion:");
for(i = 0; i < size; i++)
printf("\t%d", a[i]);
}
else
printf(“Insertion not possible!!!”);
getch();
}
![Page 4: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/4.jpg)
CS 1243: Data Structures Lab
P a g e 4 | 52
Output:
![Page 5: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/5.jpg)
CS 1243: Data Structures Lab
P a g e 5 | 52
2. ARRAY - DELETION
Aim:
To write a c program to delete an item from an array.
Program:
#include<stdio.h>
void main()
{
int a[10], size, pos, i;
clrscr();
printf("\nEnter the size of array:\t");
scanf("%d", &size);
printf("Enter %d elements\n", size);
for (i = 0; i < size; i++)
scanf("%d", &a[i]);
printf("Enter the position(<%d) of the element to be deleted:\t",size);
scanf("%d", &pos);
if (pos >= 0 && pos < size)
{
for (i = pos; i < size; i++)
a[i] = a[i+1];
size--;
printf("Array after deletion:");
for (i = 0; i < size; i++)
printf("\t%d", a[i]);
}
else
printf("Deletion not possible!!!");
getch();
}
![Page 6: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/6.jpg)
CS 1243: Data Structures Lab
P a g e 6 | 52
Output:
![Page 7: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/7.jpg)
CS 1243: Data Structures Lab
P a g e 7 | 52
3. LARGEST AND SMALLEST
Aim:
To write a c program to find the largest and smallest elements in the given array.
Program:
#include<stdio.h>
void main()
{
int a[10], size, i, small, large;
clrscr();
printf("\nEnter the size of array:\t");
scanf("%d", &size);
printf("Enter %d elements\n", size);
for (i = 0; i < size; i++)
scanf("%d", &a[i]);
small=large=a[0];
for (i = 1; i < size; i++)
{
if (a[i] < small)
small = a[i];
if (a[i] > large)
large = a[i];
}
printf("Largest = %d\nSmallest = %d",large,small);
getch();
}
![Page 8: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/8.jpg)
CS 1243: Data Structures Lab
P a g e 8 | 52
Output
![Page 9: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/9.jpg)
CS 1243: Data Structures Lab
P a g e 9 | 52
4. LINEAR SEARCH
Aim:
To write a c program to search an element in array using linear search.
Program:
#include<stdio.h>
void main()
{
int arr[10], key, i, n, pos = -1;
clrscr();
printf("\nEnter the size of array : ");
scanf("%d", &n);
printf("Enter the elements: \n");
for(i=0;i<n;i++)
scanf("%d", &arr[i]);
printf("Enter the number that has to be searched : ");
scanf("%d", &key);
for(i=0;i<n;i++)
{
if(arr[i] == key)
{
pos=i;
printf("%d is found at index %d", key,i);
break;
}
}
if (pos == -1)
printf("%d not found in the array", key);
getch();
}
![Page 10: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/10.jpg)
CS 1243: Data Structures Lab
P a g e 10 | 52
Output:
![Page 11: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/11.jpg)
CS 1243: Data Structures Lab
P a g e 11 | 52
5. BINARY SEARCH
Aim:
To write a c program to search an element in sorted array using binary search.
Program:
#include<stdio.h>
void main()
{
int arr[10], key, i, n, beg, end, mid, pos=-1;
clrscr();
printf("\nEnter the size of array: ");
scanf("%d", &n);
printf("Enter the elements in ascending order: \n");
for (i = 0; i < n; i++)
scanf("%d", &arr[i]);
printf("Enter the search key: ");
scanf("%d", &key);
beg = 0, end = n-1;
while(beg<=end)
{
mid = (beg + end)/2;
if (arr[mid] == key)
{
printf("\n%d is present at position %d", key, mid);
pos=mid;
break;
}
else if (arr[mid]>key)
end = mid-1;
else
beg = mid+1;
}
![Page 12: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/12.jpg)
CS 1243: Data Structures Lab
P a g e 12 | 52
if (pos == -1)
printf("\n%d not found", key);
getch();
}
Output:
![Page 13: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/13.jpg)
CS 1243: Data Structures Lab
P a g e 13 | 52
6. BUBBLE SORT
Aim:
To write a c program to sort an array using bubble sort.
Program:
#include<stdio.h>
void main()
{
int nums[10], size, temp, i=0, j;
clrscr();
printf("\nEnter the size of array: ");
scanf("%d",&size);
printf("\nEnter the numbers: \n");
while(i < size)
scanf("%d",&nums[i++]);
for (i = 0; i < size-1; i++)
{
for (j = 0; j < size-i-1; j++)
{
if(nums[j] > nums[j+1])
{
temp = nums[j];
nums[j]=nums[j+1];
nums[j+1] = temp;
}
}
}
printf("\nSorted list is \t");
for(i=0; i<size; i++)
printf("%d\t",nums[i]);
getch();
}
![Page 14: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/14.jpg)
CS 1243: Data Structures Lab
P a g e 14 | 52
Output:
![Page 15: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/15.jpg)
CS 1243: Data Structures Lab
P a g e 15 | 52
7. INSERTION SORT
Aim:
To write a c program to sort an array using insertion sort.
Program:
#include<stdio.h>
void main()
{
int nums[10], size, small, i, j;
clrscr();
printf("\nEnter the size of array: ");
scanf("%d",&size);
printf("\nEnter the numbers: \n");
for(i = 0; i < size; i++)
scanf("%d",&nums[i]);
for(i = 1; i < size; i++)
{
small = nums[i];
j = i - 1;
while(j >= 0 && small < nums[j])
{
nums[j+1] = nums[j];
j=j-1;
}
nums[j+1] = small;
}
printf("\nSorted list is");
for(i=0; i<size; i++)
printf("\t%d",nums[i]);
getch();
}
![Page 16: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/16.jpg)
CS 1243: Data Structures Lab
P a g e 16 | 52
Output:
![Page 17: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/17.jpg)
CS 1243: Data Structures Lab
P a g e 17 | 52
8. SELECTION SORT
Aim:
To write a c program to sort an array using selection sort.
Program:
#include<stdio.h>
void main()
{
int a[10], n, i, j, min, temp;
clrscr();
printf("\nEnter the size of array: ");
scanf("%d",&n);
printf("\nEnter %d Elements: \n",n);
for (i=0;i<n;i++)
scanf("%d",&a[i]);
for (i=0;i<n-1;i++)
{
min = i;
for (j=i+1;j<n;j++)
if (a[min] > a[j])
min = j;
if (min != i)
{
temp = a[i];
a[i] = a[min];
a[min] = temp;
}
}
printf("\n The Sorted array in ascending order:");
for (i=0;i<n;i++)
printf("\t%d ",a[i]);
getch();
}
![Page 18: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/18.jpg)
CS 1243: Data Structures Lab
P a g e 18 | 52
Output:
![Page 19: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/19.jpg)
CS 1243: Data Structures Lab
P a g e 19 | 52
9. STACK USING ARRAY
Aim:
To write a c program to implement stack using array.
Program:
#include<stdio.h>
void main()
{
int stack[10], i, size, top=-1, item, choice;
clrscr();
printf("Enter size of stack: ");
scanf("%d",&size);
do
{
printf("Menu - Stack operations");
printf("\t1.Display\t2.Push\t3.Pop\t4.Exit\t");
scanf("%d",&choice);
switch(choice)
{
case 1:
if (top == -1)
printf("EMPTY STACK!!!\n");
else
{
printf("The elements on the array are :");
for (i=0; i<=top; i++)
printf("\t%d",stack[i]);
printf("\n");
}
break;
case 2:
if (top == size-1)
printf("Stack is full!!!\n");
![Page 20: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/20.jpg)
CS 1243: Data Structures Lab
P a g e 20 | 52
else
{
printf("Enter new item: ");
scanf("%d",&item);
stack[++top] = item;
printf("Inserted %d.\n",stack[top]);
}
break;
case 3:
if(top == -1)
printf("Stack is empty!!!\n");
else
{
item = stack[top--];
printf("Item deleted: %d\n",item);
}
break;
case 4:
exit(0);
default:
printf("Invalid choice!!!\n");
break;
}
}while(choice!=4);
getch();
}
![Page 21: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/21.jpg)
CS 1243: Data Structures Lab
P a g e 21 | 52
Output:
![Page 22: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/22.jpg)
CS 1243: Data Structures Lab
P a g e 22 | 52
10. INFIX TO POSTFIX
Aim:
To write a c program to convert an infix expression to postfix expression using stack.
Program:
#include<stdio.h>
#include <ctype.h>
int pr(char s)
{
if(s == '^')
return(3);
else if(s == '*' || s == '/')
return(2);
else if(s == '+' || s == '-')
return(1);
else
return(0);
}
void main()
{
char in[50], stack[50], post[50], ch;
int top = -1, i = 0, k = 0;
printf("\nEnter Infix Expression : ");
scanf("%s",in);
stack[++top] = '#';
while( (ch=in[i++]) != '\0')
{
if( ch == '(')
stack[++top] = ch;
else if(isalnum(ch))
post[k++] = ch;
else if( ch == ')')
{
![Page 23: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/23.jpg)
CS 1243: Data Structures Lab
P a g e 23 | 52
while( stack[top] != '(')
post[k++] = stack[top--];
top--;
}
else
{
while( pr(stack[top]) >= pr(ch) )
post[k++] = stack[top--];
stack[++top] = ch;
}
}
while( stack[top] != '#')
post[k++] = stack[top--];
post[k] = '\0';
printf("\nPostfix Expression = %s\n",post);
getch();
}
Output:
![Page 24: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/24.jpg)
CS 1243: Data Structures Lab
P a g e 24 | 52
11. QUEUE USING ARRAY
Aim:
To write a c program to implement queue using array.
Program:
#include<stdio.h>
void main()
{
int queue[20], front=-1, rear=-1, val, size, choice, i;
clrscr();
printf("Enter the size of the Queue: ");
scanf("%d",&size);
do
{
printf("Queue");
printf("\t1.Insert\t2.Delete\t3.Display\t4. Quit: ");
scanf("%d",&choice);
switch(choice)
{
case 1:
if (rear == size-1)
printf("Queue is full!!!!\n");
else
{
printf("Enter the value to be added: ");
scanf("%d",&val);
if (rear == -1 && front == -1)
front = front + 1;
rear = rear + 1;
queue[rear] = val;
printf("Inserted %d\n",queue[rear]);
}
break;
![Page 25: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/25.jpg)
CS 1243: Data Structures Lab
P a g e 25 | 52
case 2:
if (front == -1 || front > rear)
printf("Queue is empty!!!\n");
else
{
val = queue[front];
front = front+1;
printf("Deleted %d\n",val);
}
break;
case 3:
if (front == -1 || front > rear)
printf("Queue is empty!!!\n");
else
{
printf("The content of queue are:");
for (i=front;i<=rear;i++)
printf("\t%d",queue[i]);
printf("\n");
}
break;
case 4:
exit(0);
default:
printf("Invalid choice!!!\n");
break;
}
}
while(choice!=4);
getch();
}
![Page 26: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/26.jpg)
CS 1243: Data Structures Lab
P a g e 26 | 52
Output:
![Page 27: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/27.jpg)
CS 1243: Data Structures Lab
P a g e 27 | 52
12. SINGLY LINKED LIST - INSERTION
Aim:
To write a c program to illustrate the insertion operation in a singly linked list.
Program:
#include<stdio.h>
#include<stdlib.h>
struct node
{
int data;
struct node *next;
};
struct node *temp,*newnode,*start=NULL;
void create()
{
newnode=(struct node *)malloc(sizeof(struct node));
printf("Enter the data value for the node:\t" );
scanf("%d",&newnode->data);
newnode->next =NULL;
}
void display()
{
temp=start;
while(temp!=NULL)
{
printf("%d->",temp->data );
temp=temp->next ;
}
printf("NULL");
}
void main()
{
int choice,key,flag;
![Page 28: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/28.jpg)
CS 1243: Data Structures Lab
P a g e 28 | 52
clrscr();
while(1)
{
printf("\n1.Beginning 2.End 3.After 4.Exit:\t");
scanf("%d",&choice);
switch(choice)
{
case 1:
create();
if(start==NULL)
start=newnode;
else
{
newnode->next=start;
start=newnode;
}
display();
break;
case 2:
create();
if(start==NULL)
start=newnode;
else
{
temp=start;
while(temp->next !=NULL)
temp=temp->next ;
temp->next =newnode;
}
display();
break;
case 3:
![Page 29: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/29.jpg)
CS 1243: Data Structures Lab
P a g e 29 | 52
printf("Enter the key after which new node to be
inserted:\t");
scanf("%d",&key);
flag=0;
temp=start;
while(temp!=NULL)
{
if(temp->data==key)
{
create();
newnode->next=temp->next;
temp->next=newnode;
flag=1;
display();
break;
}
else
temp=temp->next;
}
if(flag==0)
printf("Key not found!!!\n");
break;
case 4:
exit(0);
default:
printf("Wrong Choice\n");
break;
}
}
}
![Page 30: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/30.jpg)
CS 1243: Data Structures Lab
P a g e 30 | 52
Output:
![Page 31: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/31.jpg)
CS 1243: Data Structures Lab
P a g e 31 | 52
13. SINGLY LINKED LIST - DELETION
Aim:
To write a c program to illustrate the deletion operation in a singly linked list.
Program:
#include<stdio.h>
#include<stdlib.h>
struct node
{
int data;
struct node *next;
} *start=NULL, *temp, *newnode, *ptr;
void create()
{
newnode=(struct node *)malloc(sizeof(struct node));
printf("Enter the data value for the node:\t");
scanf("%d",&newnode->data);
newnode->next=start;
start = newnode;
}
void display()
{
temp=start;
while(temp!=NULL)
{
printf("%d->",temp->data );
temp=temp->next ;
}
printf("NULL\n");
}
void main()
{
int choice, n, i, key;
![Page 32: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/32.jpg)
CS 1243: Data Structures Lab
P a g e 32 | 52
clrscr();
printf("How many nodes do you want?\t");
scanf("%d",&n);
for (i=0;i<n;i++)
create();
display();
while(1)
{
printf("Delete 1.Beginning 2.End 3.Node 4.Exit: ");
scanf("%d",&choice);
switch(choice)
{
case 1:
if(start != NULL)
{
temp=start;
start=start->next ;
free(temp);
}
display();
break;
case 2:
temp = start;
if (start->next == NULL)
start=NULL;
else
{
while(temp->next!=NULL)
{
ptr=temp;
temp=temp->next;
}
ptr->next=NULL;
![Page 33: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/33.jpg)
CS 1243: Data Structures Lab
P a g e 33 | 52
}
free(temp);
display();
break;
case 3:
printf("Enter node to be deleted:\t");
scanf("%d",&key);
temp=start;
while(temp != NULL && temp->data != key)
{
ptr = temp;
temp = temp->next;
}
if(temp->data == key)
{
if(temp == start)
start = start->next;
else
ptr->next = temp->next;
free(temp);
}
else
printf("Key not found!!!\n");
display();
break;
case 4:
exit(0);
default:
printf("Wrong Choice\n");
break;
}
}
}
![Page 34: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/34.jpg)
CS 1243: Data Structures Lab
P a g e 34 | 52
Output:
![Page 35: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/35.jpg)
CS 1243: Data Structures Lab
P a g e 35 | 52
14. SINGLY LINKED LIST - SEARCH
Aim:
To write a c program to demonstrate the search operation in a singly linked list.
Program:
#include<stdio.h>
#include<stdlib.h>
struct node
{
int data;
struct node *next;
} *start=NULL, *temp, *newnode;
void create()
{
newnode=(struct node *)malloc(sizeof(struct node));
printf("Enter the data value for the node:\t");
scanf("%d",&newnode->data);
newnode->next=start;
start = newnode;
}
void main()
{
int n, i, key;
clrscr();
printf("How many nodes do you want?\t");
scanf("%d",&n);
for (i=0;i<n;i++)
create();
temp=start;
while(temp!=NULL)
{
printf("%d->",temp->data );
temp=temp->next ;
![Page 36: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/36.jpg)
CS 1243: Data Structures Lab
P a g e 36 | 52
}
printf("NULL\n");
printf("Enter node to be searched:\t");
scanf("%d",&key);
temp=start;
i = 0;
while(temp != NULL && temp->data != key)
{
i++;
temp = temp->next;
}
if(temp->data == key)
printf("Node with data %d found at position %d.",key,i);
else
printf("Key not found!!!\n");
getch();
}
Output:
![Page 37: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/37.jpg)
CS 1243: Data Structures Lab
P a g e 37 | 52
15. SINGLY LINKED LIST – COUNT THE NODES
Aim:
To write a c program to count the total number of nodes in a singly linked list.
Program:
#include<stdio.h>
#include<stdlib.h>
struct node
{
int data;
struct node *next;
} *start=NULL, *temp, *newnode;
void create()
{
newnode=(struct node *)malloc(sizeof(struct node));
printf("Enter the data value for the node:\t");
scanf("%d",&newnode->data);
newnode->next=start;
start = newnode;
}
void main()
{
int choice=1, n, i;
clrscr();
while(choice==1)
{
create();
printf("\nPress 1 to CONTINUE and press any other key to STOP : ");
scanf("%d",&choice);
}
i=0;
for(temp=start;temp != NULL;temp=temp->next)
{
![Page 38: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/38.jpg)
CS 1243: Data Structures Lab
P a g e 38 | 52
i++;
printf("%d->",temp->data);
}
printf("NULL\n");
printf("No: of nodes in this singly linked list is %d\n", i);
getch();
}
Output:
![Page 39: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/39.jpg)
CS 1243: Data Structures Lab
P a g e 39 | 52
16. SINGLY LINKED LIST – TRAVERSAL
Aim:
To write a c program to illustrate the traversal operation in a singly linked list.
Program:
#include<stdio.h>
#include<stdlib.h>
struct node
{
int data;
struct node *next;
} *start=NULL, *temp, *newnode;
void create()
{
newnode=(struct node *)malloc(sizeof(struct node));
printf("Enter the data value for the node:\t");
scanf("%d",&newnode->data);
newnode->next=start;
start = newnode;
}
void traversal()
{
temp=start;
while(temp!=NULL)
{
printf("%d->",temp->data );
temp=temp->next ;
}
printf("NULL");
}
void main()
{
int n, i;
![Page 40: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/40.jpg)
CS 1243: Data Structures Lab
P a g e 40 | 52
clrscr();
printf("How many nodes do you want?\t");
scanf("%d",&n);
for (i=0;i<n;i++)
create();
printf("Singly linked list : ");
traversal();
getch();
}
Output:
![Page 41: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/41.jpg)
CS 1243: Data Structures Lab
P a g e 41 | 52
17. STACK USING LINKED LIST
Aim:
To write a c program to implement stack using linked list.
Program:
#include<stdio.h>
#include<stdlib.h>
struct node {
int data;
struct node *next;
};
void main()
{
struct node *top=NULL,*temp,*new_node;
int choice;
clrscr();
do
{
printf("Stack operations 1.Display 2.Push 3.Pop 4.Exit: ");
scanf("%d",&choice);
switch(choice)
{
case 1:
printf("The elements in the stack : ");
temp=top;
while(temp!=NULL)
{
printf("%d->",temp->data);
temp=temp->next;
}
printf("NULL\n");
break;
case 2:
![Page 42: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/42.jpg)
CS 1243: Data Structures Lab
P a g e 42 | 52
new_node=(struct node *)malloc(sizeof(struct node));
printf("Enter new item: ");
scanf("%d",&new_node->data);
new_node->next=NULL;
if(top==NULL)
top=new_node;
else
{
new_node->next=top;
top=new_node;
}
printf("Inserted : %d\n",top->data);
break;
case 3:
if(top==NULL)
printf("Stack is empty!!!\n");
else
{
temp=top;
top=top->next;
printf("Deleted: %d\n",temp->data);
free(temp);
}
break;
case 4:
exit(0);
default:
printf("Invalid choice!!!\n");
break;
}
}while(choice!=4);
getch();
}
![Page 43: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/43.jpg)
CS 1243: Data Structures Lab
P a g e 43 | 52
Output:
![Page 44: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/44.jpg)
CS 1243: Data Structures Lab
P a g e 44 | 52
18. QUEUE USING LINKED LIST
Aim:
To write a c program to implement queue using linked list.
Program:
#include<stdio.h>
#include<stdlib.h>
struct node {
int data;
struct node *next;
};
void main()
{
struct node *front=NULL, *rear=NULL,*new_node,*temp;
int choice;
clrscr();
do
{
printf("Queue operations 1.Insert 2.Delete 3.Display 4.Quit : ");
scanf("%d",&choice);
switch(choice)
{
case 1:
new_node=(struct node *)malloc(sizeof(struct node));
printf("Enter the value to be added: ");
scanf("%d",&new_node->data);
new_node->next=NULL;
if(rear==NULL)
front=rear=new_node;
else
{
rear->next=new_node;
rear=new_node;
![Page 45: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/45.jpg)
CS 1243: Data Structures Lab
P a g e 45 | 52
}
printf("Inserted %d\n",rear->data);
break;
case 2:
if(front==NULL)
printf("Queue is empty!!!\n");
else
{
temp=front;
front=front->next;
printf("Deleted %d\n",temp->data);
free(temp);
}
break;
case 3:
printf("Queue : ");
for(temp=front;temp!=NULL;temp=temp->next)
printf("%d->",temp->data);
printf("NULL\n");
break;
case 4:
exit(0);
default:
printf("Invalid choice!!!\n");
break;
}
}
while(choice!=4);
getch();
}
![Page 46: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/46.jpg)
CS 1243: Data Structures Lab
P a g e 46 | 52
Output:
![Page 47: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/47.jpg)
CS 1243: Data Structures Lab
P a g e 47 | 52
19. BINARY SEARCH TREE – TRAVERSAL
Aim:
To write a c program to illustrate the traversal operation in binary search tree.
Program:
#include <stdio.h>
#include <stdlib.h>
struct BST {
int data;
struct BST *left, *right;
} *root = NULL, *temp;
void insert(struct BST *root, struct BST *temp)
{
if (root == NULL)
root = temp;
else if (temp->data < root->data)
{
if (root->left != NULL)
insert(root->left, temp);
else
root->left = temp;
}
else if (temp->data > root->data)
{
if (root->right != NULL)
insert(root->right, temp);
else
root->right = temp;
}
else
printf("Duplicate node --> %d\n",temp->data);
}
void preorder(struct BST *root)
![Page 48: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/48.jpg)
CS 1243: Data Structures Lab
P a g e 48 | 52
{
if (root != NULL)
{
printf("%d ", root->data);
preorder(root->left);
preorder(root->right);
}
}
void postorder(struct BST *root)
{
if (root != NULL)
{
postorder(root->left);
postorder(root->right);
printf("%d ", root->data);
}
}
void inorder(struct BST *root)
{
if (root != NULL)
{
inorder(root->left);
printf("%d ", root->data);
inorder(root->right);
}
}
void main()
{
int ch;
clrscr();
printf("Enter the number of nodes you want : ");
scanf("%d", &ch);
printf("Enter %d nodes data :", ch);
![Page 49: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/49.jpg)
CS 1243: Data Structures Lab
P a g e 49 | 52
for(;ch!=0;ch--)
{
temp = (struct BST *)malloc(sizeof(struct BST));
scanf("%d", &temp->data);
temp->left = temp->right = NULL;
if (root == NULL)
root = temp;
else
insert(root, temp);
}
printf("\nPreorder Traversal: ");
preorder(root);
printf("\nInorder Traversal: ");
inorder(root);
printf("\nPostorder Traversal: ");
postorder(root);
getch();
}
Output:
![Page 50: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/50.jpg)
CS 1243: Data Structures Lab
P a g e 50 | 52
20. BINARY SEARCH TREE – SEARCH
Aim:
To write a c program to demonstrate the search operation in binary search tree.
Program:
#include <stdio.h>
#include <stdlib.h>
struct BST {
int data;
struct BST *left, *right;
} *root = NULL, *temp;
void insert(struct BST *root, struct BST *temp)
{
if (root == NULL)
root = temp;
else if (temp->data < root->data)
{
if (root->left != NULL)
insert(root->left, temp);
else
root->left = temp;
}
else if (temp->data > root->data)
{
if (root->right != NULL)
insert(root->right, temp);
else
root->right = temp;
}
else
printf("Duplicate node --> %d\n",temp->data);
}
void search(struct BST *root, int key)
![Page 51: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/51.jpg)
CS 1243: Data Structures Lab
P a g e 51 | 52
{
int flag = 0;
temp = root;
while(temp != NULL)
{
if (key == temp->data)
{
printf("Success...\n");
flag=1;
break;
}
else if (key < temp->data)
temp = temp->left;
else
temp = temp->right;
}
if (flag == 0)
printf("Search failed!!!\n");
}
void main()
{
int ch, key;
clrscr();
printf("Enter the number of nodes you want : ");
scanf("%d", &ch);
printf("Enter %d nodes data :", ch);
for(;ch!=0;ch--)
{
temp = (struct BST *)malloc(sizeof(struct BST));
scanf("%d", &temp->data);
temp->left = temp->right = NULL;
if (root == NULL)
root = temp;
![Page 52: LAB MANUALLAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY](https://reader033.vdocument.in/reader033/viewer/2022053121/60a7bbab6fff1802e40873da/html5/thumbnails/52.jpg)
CS 1243: Data Structures Lab
P a g e 52 | 52
else
insert(root, temp);
}
printf("Enter the search key: \n");
scanf("%d", &key);
search(root, key);
getch();
}
Output: