lab manuallab manual course : cs1243 data structures lab class : b.sc computer science semester : 2...

52
LAB MANUAL Course : CS1243 Data Structures Lab Class : B.Sc Computer Science Semester : 2 Prepared By : Nidhi S COLLEGE OF APPLIED SCIENCE PERISSERY

Upload: others

Post on 20-Jan-2021

3 views

Category:

Documents


0 download

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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: