Algorithms in C
Algorithms in C
(15 Lectures)
(15 Lectures)
(15 Lectures)
(15 Lectures)
(15 Lectures)
Linear Link lists: Representation of link list in memory, Algorithms for traversing a link
list, searching a particular node in a link list, insertion into link list (insertion at the
beginning of a node, insertion after a given node), deletion from a link list. Implement
using C.
Stacks: Definition, Array representation of stacks, Algorithms for basic operators to add
and delete an element from the stack, Implement using C.
Queues: Representation of queue, Algorithm for insertion and deletion of an element in a
queue, Implement using C.
Recommended Books:
(1) Introduction to Algorithms (Second Edition): Cormen, Leiserson, Rivest, Stein,
PHI( Chapter 1,2,3,10)
(2) Data Structures ( Schaums outline series in computers) : Seymour Lipschutz
McGraw-Hill book Company (Chapter 2, 5, 6, 9)
(3) Programming in ANSI C(Third Edition) : E Balagurusamy
TMH (Chapters: 2, 3, ,4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
Additional References:
(1) Fundamental Algorithms (Art of Computer Programming Vol 1 ): Knuth
Narosa Publishing House
(2) Mastering Algorithms with C, Kyle Loudon, Shroff Publishers
(3)Algorithms in C (Third Edition): Robert Sedgewick ,
Pearson Education Asia
(4) Data Structures A Pseudocode Approach with C:
Richard F. Gilberg, Behrouz A. Forouzan , Thomson
(5) Let us C by Yashwant Kanetkar, BPB
(6) Programming in ANSI C by Ram Kumar, Rakesh Agrawal, TMH
(7) Programming with C (Second Edition):Byron S Gottfried
(Adapted by Jitender Kumar Chhabra) Schaums Outlines (TMH)
(8) Programming with C : K R Venugopal, Sudeep R Prasad
TMH Outline Series
(9) Unix and C : M.P. Bhave and S.A. Pateker
Nandu printers and publishers private limited
PRACTICAL
Section I
1. Convert the following algorithms using C:
Exchange the values of two variables with and without temporary variable.
2. Convert the following algorithms using C:
Counting positive numbers from a set of integers.
3. Convert the following algorithms using C:
Summation of set of numbers.
4. Convert the following algorithms using C :
Reversing the digits of an integer.
5. Convert the following algorithms using C:
Find smallest positive divisor of an integer other then 1.
6. Convert the following algorithms using C:
Find G.C.D. and L.C.M. of two as well as three positive integers.
7. Convert the following algorithms using C:
Generating prime numbers.
8. Write a program to find the
(a) sum of two matrices of order m n and transpose of order m n where
m, n 3.
(b) multiplication of two matrices of order m, where m 3, finding square and
cube of a square matrix.
(c) Inverse of a matrix
(d) A , B and verify the identity A B = B A = A . B , where denote
determinant of the matrix and A and B of size 2 2.
9. Write a program to (a) input a sentence (b) count the number of occurrences of the
given pattern of letters (for instance est or ed) (c) find the position of the rightmost
or leftmost character occurred from the pattern of letters
10. Write a program which counts the number of (a) paragraphs occurred.(b) times the
word the appears in a short story
11. Given an array S of n integers. Write a program to (a) sort the elements in S in
ascending order by considering an array of n-2 elements by any sorting method, (b)
find the median of elements of S
Section II
1. Write a program to create functions (a) to generate twin primes in a given range of
numbers, (b) to find the prime factors of a given integer.
2. Write a program to accept details of 5 customers that includes customer number,
name and mobile number. Create a menu with options Modify, Display and Exit.
Write functions modify(), which will allow modification of mobile number and
function display(), which will display all the details of customers.
3. Write a program to create structure to (a) find and print the average marks of five
subjects along with the name of student. (b) store names of the states (within India)
and their capital cities. Show the capital by inserting state from the keyboard.
4. Write a program using pointer notation (a) to write function to exchange two strings,
(b) to determine whether the given string is a palindrome, (c) to find the average of
each students in 3 tests. Number of students can be given from keyboard.
5. Write a program that accepts a number from the user and passes a pointer to the
number to a function for processing. This function passes a pointer to this pointer to
another function for processing of the number. Both the functions should display the
number.
6. Write a function called increment that accepts a date structure with three fields. The
first field contains the month (a pointer to string). The second field is an integer
showing the day in month. The third field is an integer showing the year. The
function should increments the date by 1 day and returns the new date. If the date is
the last date in the month, the month field must be changed. If the month is
December, the value of year must be changed when day is 31. A year is leap year if
i. It is evenly divisible by 4 but not with 100 or
b. It is evenly divisible by 400
7. Write a program to crate a dynamic one and two dimension array by accepting
number of rows and/or columns from the user at runtime using pointer notation.
8. Write a program to (a) read string from the user to check whether it exists in a given
file or not. (b)to accept a file name and then accept contents that should be stored in
the file until the user types end, (c) declare a structure representing student, accept
data of 5 students and store it in a file, (d) convert a capital case letter file to small
case letter file
9. Write a program to compute factorial of a large number.
10. The Ackermans function Ack(m ,n) is defined recursively by
a. a If m = 0 then Ack(m ,n) = n+1,
b. If m 0 but n = 0 then Ack(m ,n) = Ack(m-1 ,1),
c. If m 0 and n 0 then Ack(m ,n) = Ack(m-1 , Ack(m, n-1))
d. Write a program to calculate Ack(0 ,n), Ack(4 ,0), Ack(6 ,10)
11. Fibonacci sequence is defined by
a. If n = 0 or n = 1 then F n = n;
b. If n > 1 then F n = F n 2 + F n -1
c. Write a program to generate Fibonacci sequence.
12. Write a program to solve Tower of Hanoi problem
13. Write a program to create a linked list containing students name and marks (a) search
marks of a particular student (b) insert a new student at the beginning of the list. (c)
insert a new student at the end of the list (d) delete a particular student from a list.
14. Write a program to create following stack of characters, where STACK is allocated
N=8 memory cells:
1. STACK: A, C, D, F, K, ___, ___, ___.
ii. (For notation convenience, we use __ to denote an empty memory
cell ). The program should describe the STACK after the following
operations take place:
b. (a) POP (STACK, ITEM)
(e) POP (STACK, ITEM)
c. (b) POP( STACK, ITEM)
(f) PUSH(STACK, R)
d. (c) PUSH( STACK, L)
(g) PUSH(STACK, S)
e. (d) PUSH( STACK, P)
(h) POP(STACK, ITEM)
f. b The POP always deletes the top element from the stack, and the PUSH
always adds the new element to the top of the stack.
15. Write a program to create following queue of cities, where QUEUE is allocated 6
memory cells:
1. QUEUE: _____, Latur, Bashirabad, Rawalgav,Palanpur, _____
(For notation convenience, we use ___ to denote an empty memory cell ).
Where FRONT = 2, REAR= 5.The program should describe the QUEUE, including
FRONT and REAR, after the following operations take place:
(a) Allahabad is added, (b) two cities are deleted, (c) Mumbai is added,
(d) Mathura is added, (e) three cities are deleted and (f) Nagpur is added.