You are on page 1of 28

# CS0213 DATA STRUCTURES AND ALGORITHM LAB

## USING C & C++

LABORATORY MANUAL

II - CSE
III - SEMESTER
ACADEMIC YEAR: 2012-2013

## SCHOOL OF COMPUTER SCIENCE & ENGINEERING

SRM UNIVERSITY,
SRM NAGAR, KATTANKULATHUR-603203.
KANCHEEPURAM DISTRICT.

## SCHOOL OF COMPUTER SCIENCE & ENGINEERING

SRM UNIVERSITY,
SRM NAGAR, KATTANKULATHUR-603203.
SUBJECT : DATA STRUCTURES AND ALGORITHM SUBJECT CODE : CS0213
SEMESTER : III

CLASS

: II CSE

EX. NO

1
2
3
4
5
6
7
8
9
10
11
12

PAGE NO

LINEAR SEARCH

BINARY SEARCH

SELECTION SORT

BUBBLE SORT

INSERTION SORT

11

MERGE SORT

13

QUICK SORT

15

STACKS

17

QUEUES

19

21

KNAPSACK PROBLEM

23

## SINGLY LINKED LIST

25

LINEAR SEARCH

AIM:
To find a given target number using linear search from the list of numbers.

ALGORITHM:
Step 1: Initialize the integer variables
Step 2: Get the target number from user
Step 3: Get the list of numbers to be searched
Step 4: If the counter is equal to target the print the location
Step 5: If it is not equal to then print that the location is not found

INPUT:
Enter the number to be found: 25
Enter the number of elements in the list: 5
Enter the elements: 12 22 37 25 61

OUTPUT:
The number is found in location: 4

RESULT:
The target number is found using linear search successfully
4

BINARY SEARCH

AIM:
To find a given target number using Binary Search from the list of number.

ALGORITHM:
Step 1: Initialize the integer variables
Step 2: Get the values from the list
Step 3: Sorted List of numbers is got as input.
Step 4: Get the target number from the user.
Step 5: Initialize first value as zero and last as n-1;
Step 6: The mid value is found.
Step 7: If the target is greater than mid then first is mid + 1 if not last is mid -1.
Step 8: First is last +1
Step 9: The target is found, if its equal to a(mid) otherwise target is not
found.

INPUT:
Enter the number of elements in the list: 5
Enter the sorted list: 11 22 33 44 55
Enter the target: 33

OUTPUT:
The target is found in location: 3

RESULT:
The target number is found using Binary Search successfully

SELECTION SORT

AIM:
To sort the given data using selection sort.

ALGORITHM:
Step 1: Initialize the integer variables.
Step 2: Get the total number of values from the user.
Step 3: Get the numbers to be sorted.
Step 4: Initialize i to current
Step 5: If current is less than j ,then initialize j to current.
Step 6: Assign j to temp, current to i and temp to current for swapping
Step 7: print the sorted data

INPUT
Enter the number of elements: 5
Enter the Numbers to be sorted: 31 21 77 62 45

OUTPUT
Sorted Data: 21 31 45 62 77

RESULT:
The given data is sorted and printed using selection sort.
8

BUBBLE SORT

AIM:
To sort the given data using Bubble sort.

ALGORITHM:
Step 1: Initialize the variables i,j,n, and temp.
Step 2: Get the number of elements.
Step 3: Get the numbers to be sorted.
Step 4; Assign a[i] to temp
Step 5: Assign a[i+1] to a[i]
Step 6: Assign Temp to a[i+1]
Step 7: The data is sorted.

INPUT
Enter the number of elements: 6
Enter the numbers to be sorted: 22 66 11 99 33 77

OUTPUT
Sorted Data: 11 22 33 66 77 99

RESULT:
The given data is sorted and printed using Bubble sort.
10

INSERTION SORT

AIM:
To sort the given data using Insertion sort.

ALGORITHM:
Step 1: Initialize the variables i,j,n, curr and temp.
Step 2: Get the number of elements.
Step 3: Get the numbers to be sorted.
Step 4: If the second element is less than the first element then assign it to
temp.
Step 5: Assign the first element to second element.
Step 6: Assign Temp to first element.
Step 7: The swapping is done
Step 8: The data is sorted.

11

INPUT
Enter the number of entries: 5
Enter the list of no to be sorted: 25 15 35 05 45

OUTPUT
The sorted list: 05 15 25 35 45

RESULT:
The given data is sorted and printed using Insertion Sort.

12

MERGE SORT

AIM:
To sort the given data using Merge sort.

ALGORITHM:
Step 1: Initialize the variables i,j,n,h,k,low,high.
Step 2: Get the number of elements.
Step 3: Get the numbers to be sorted.
Step 4: If low is less than high then find the mid value.
Step 5: Initialize h and i to low.
Step 6: Initialize a[h] to b[i] else a[j] to b[i].
Step 7: If h is greater than mid then a[k] == b[i] else b[k] == a[k]
Step 8 The data is sorted and printed.

13

INPUT
Enter the number of elements: 7
The elements: 22 66 11 44 99 33 77

OUTPUT
Sorted Data: 11 22 33 44 66 77 99

RESULT:
The given data is sorted and printed using Merge Sort.
14

QUICK SORT

AIM:
To sort the given data using Quick Sort.

ALGORITHM:
Step 1: Initialize the variables i,j,n,r,p,q.
Step 2: Get the number of elements.
Step 3: Get the numbers to be sorted.
Step 4: If p is less than q then the function is called.
Step 5: If i is less than j, then interchange them.
Step 6: If I is less than pivort interchange them.
Step 7: The data is sorted and printed.

15

INPUT
Enter the number of elements: 5
Enter the unsorted list: 39 62 57 41 21

OUTPUT
The sorted list is: 21 41 39 57 62

RESULT:
The given data is sorted and printed using Quick Sort.
16

STACKS

AIM:
To perform all stacks operation.

ALGORITHM:
Step 1: Initialize the integer variables.
Step 2: In a switch case, in case 1 the number to be pushed is got
Step 3:Top is now equal to top+1
Step 4: Else the stack is full
Step 5: In case 2 the number to be deleted is got
Step 6: Top is now equal to top-1
Step 7: Else the stack is empty
Step 8: In case 3 if the top is less than 0 the stack is full
Step 9: Else the stack is printed
Step 10: Default is no such choice

INPUT / OUTPUT

## Enter the operation to be performed: 1) push 2) pop 3) display 4) exit

17

1
Enter the number to be Added: 11
Enter the operation to be performed: 1) push 2) pop 3) display 4) exit
1
Enter the number to be Added: 22
Enter the operation to be performed: 1) push 2) pop 3) display 4) exit
1
Enter the number to be Added: 33
Enter the operation to be performed: 1) push 2) pop 3) display 4) exit
1
Enter the number to be Added: 44
Enter the operation to be performed: 1) push 2) pop 3) display 4) exit
2
Enter the number to be Added: 44
Enter the operation to be performed: 1) push 2) pop 3) display 4) exit
3
The stack is 11 22 33
Enter the operation to be performed: 1) push 2) pop 3) display 4) exit
4

RESULT:
All the stack operations are performed using the switch case

18

QUEUES

AIM:
To perform all the queue operations

ALGORITHM:
Step 1:Initialize the integer variables
Step 2:In a switch case in case 1 get the number to be added in the queue
Step 3: Else the queue is full
Step 4: In case 2 get the number to be deleted from the queue
Step 5: Else the queue is full
Step 6: If tail and head are less than 0 then in case 3 the queue is full
Step 7: Else the queue is printed
Step 8: The default case is no such choice

19

INPUT / OUTPUT:
Enter the operation to be performed: 1)Enqueue 2)Dequeue 3)Display 4)Exit
1
Enter the number to be added 11
Enter the operation to be performed: 1)Enqueue 2)Dequeue 3)Display 4)Exit
1
Enter the number to be added 22
Enter the operation to be performed: 1)Enqueue 2)Dequeue 3)Display 4)Exit
1
Enter the number to be added 33
Enter the operation to be performed: 1)Enqueue 2)Dequeue 3)Display 4)Exit
1
Enter the number to be added 44
Enter the operation to be performed: 1)Enqueue 2)Dequeue 3)Display 4)Exit
2
The number to be deleted is 11
Enter the operation to be performed: 1)Enqueue 2)Dequeue 3)Display 4)Exit
3
The queue is 22 33 44

RESULT:
All the queue operations are performed
20

## MAXIMUM AND MINIMUM

AIM:
To find the maximum and minimum value in a given list of numbers

ALGORITHM:
Step 1:Initialise the variables in the main function
Step 2: Get the total number of items
Step 3: Get the numbers from the user
Step 4: The function is called.
If there is only one element then the max and min is the same element
Step 5: If there is two element then check if a[x] is less than a[y] then a[x] is
min and a[y] is max
Step 6: If there is more number of items mid value is found
Step 7: Now max is assigned to t1 and min to t2
Step 8: If the max is less than t1 the max is t1,if min is greater than t2 the
min t2
Step 9: The min and max values are found and printed

21

INPUT
Enter the no of numbers: 6
Enter the numbers: 33 59 11 67 92 05

OUTPUT
Maximum Number = 92
Minimum Number = 05

RESULT:
The maximum and minimum number is found and printed.

22

KNAPSACK PROBLEM

AIM:
To find the maximum profit from the items in the bag.

ALGORITHM:
Step 1: Initialize the variables, profit, weight, p/w and maxprofit.
Step 2: Get the number of elements.
Step 3: Get the capacity of the bag.
Step 4: Get the profit of items in the bag.
Step 5: Get the weight of each item in the bag.
Step 7: Assign pw[j] to t1, p[j] to t2 and w[j] to t3.
Step 8: If w[i] > capacity then find the ratio of capacity to weight of each item.
Step 9: Else subtract the weight of the item from the total capacity.
Step 10: Solution vector is found and printed.
Step 11: The maximum profit is found and printed.

23

INPUT/OUTPUT:

## Enter the number of elements:

4
Enter the capacity:
4
Enter the profit:
5
9
4
8
Enter the weight:
1
3
2
2
Enter the p/w ratio:
5
3
2
4
Solution vector:
13
15
16
Profit: 16

RESULT:
The maximum profit is found and printed on the screen.
24

## SINGLY LINKED LIST

AIM:
To perform all the singly linked list operations

ALGORITHM:
Step 1: Declare the functions to create,display,count.
Step 2: Declare the variables in the main function.
Step 3: In a switch case get each functions number.
Step 4: To append the list create the memory by using malloc function.
Step 5: Assign a variable temp using pointers.
Step 6: To delete a node create a dummy variable.
Step 7: Check if the list is empty otherwise display the list using for
statement.
Step 8: To insert a node in middle, allocate memory using malloc function

25

INPUT / OUTPUT:
Singly Linked List:
1. Create or Append List
2. Insert in Beginning
3. Insert in Middle
4. Remove from the List
5. Count
6. Display
7. Quit
Enter your Choice: 1
Enter any number: 12
Enter more(y/n): y
Enter any number: 13
Enter more(y/n): n
Singly Linked List:
1. Create or Append List
2. Insert in Beginning
3. Insert in Middle
4. Remove from the List
5. Count
6. Display
7. Quit
Enter your Choice: 2
Enter the Data to be inserted at Beginning: 11
Singly Linked List:
1. Create or Append List
2. Insert in Beginning
3. Insert in Middle
4. Remove from the List
5. Count
6. Display
7. Quit
26

## Enter your Choice: 3

Enter the Position to be Inserted: 2
Enter the Data: 14
Singly Linked List:
1. Create or Append List
2. Insert in Beginning
3. Insert in Middle
4. Remove from the List
5. Count
6. Display
7. Quit
Enter your Choice: 4
Enter the Data to be Deleted: 12
Singly Linked List:
1. Create or Append List
2. Insert in Beginning
3. Insert in Middle
4. Remove from the List
5. Count
6. Display
7. Quit
Enter your Choice: 5
The Number of Nodes: 3

27

## Singly Linked List:

1. Create or Append List
2. Insert in Beginning
3. Insert in Middle
4. Remove from the List
5. Count
6. Display
7. Quit
Enter your Choice: 6
11 14 13

RESULT:
All the Singly Linked List operations are performed.

28