CS164 DS Lab Cycles
CS164 DS Lab Cycles
Course Outcomes
1. Develop solutions using the fundamental algorithms for searching, sorting, and hashing
to solve computational problems effectively.
2. Implement linked list operations to manage dynamic data structures effectively.
3. Apply stack-k and queue-based data structures to handle applications like expression
evaluation, syntax checking, and sequential data processing.
4. Construct tree and graph structures to organize, search, and traverse data in
hierarchical and networked representations.
CYCLE – 1
1. Implement Linear Search and Binary Search algorithms and compare their time
complexity for different input sizes.
2. Implement Insertion Sort and Selection Sort algorithms and analyse their time
complexity for best, worst, and average cases.
3. Implement following operations on Singly Linked Lists:
a. Insert a node at the head of a linked list.
b. Insert a node at the tail of a linked list.
c. Insert node at a specific position of a linked list.
d. Delete node from a linked list based on position.
e. Delete node from a linked list based on value.
f. Print the elements of a linked list.
4. Implement the following operations on Doubly Linked Lists:
a. Create a list of specified size.
b. Print the elements of a linked list in reverse order.
c. Delete duplicate nodes from a linked list.
d. Remove N-th node from the end of a Linked List.
e. Reverse a Linked List.
f. Sort the elements in a linked list.
5. Implement a Circular Linked List with following operations:
a. Create a list of specified size.
b. Insert a node at the beginning of the list.
c. Insert a node at the ending of the list.
d. Delete a node from the linked list based on position.
e. Delete a node from the linked list based on value.
f. Print the elements of the linked list.
6. Implement Polynomial Addition and Multiplication using Linked Lists.
CYCLE - 2
1. Implement Stack ADT and perform operations like push, pop, and peek using arrays.
2. Write a program to convert the given infix expression to postfix form and evaluate it
using a stack.
3. Write a C program to check whether a given expression has balanced parentheses using
a Stack.
4. Implement a Dynamically Linked Stack with basic stack operations.
5. Implement a Queue ADT using arrays and perform enqueue, dequeue, and display
operations.
6. Implement a Dynamically Linked Queue with basic queue operations.
7. Design and implement a Circular Queue using an array in C. Your implementation
should include the operations: Enqueue, Dequeue, Display.
CYCLE - 3
1. Implement Static Hashing using Hash Tables with divisive hashing function and
resolve collisions using Chaining / Open Addressing.
2. Implement Binary Search Tree (BST) operations, including insertion, deletion, and
search.
3. Implement Heap Sort using a Heap data structure.
4. Represent a Graph using adjacency matrix and adjacency list methods and print the in-
degree and out-degree of each node.
5. Implement Depth First Search (DFS) and Breadth First Search (BFS) for graph
traversal.