0% found this document useful (0 votes)
612 views

List of Projects in Data Structures

This document describes 13 mini-projects related to data structures and algorithms. The projects involve implementing applications of common data structures like stacks, linked lists, hash tables, queues, and trees. Examples of applications include infix to postfix conversion using stacks, polynomial operations using linked lists, an inventory system using hashing, and a word frequency counter using binary search trees. The document provides a title, description, and requirements for each proposed project.

Uploaded by

nenase
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
612 views

List of Projects in Data Structures

This document describes 13 mini-projects related to data structures and algorithms. The projects involve implementing applications of common data structures like stacks, linked lists, hash tables, queues, and trees. Examples of applications include infix to postfix conversion using stacks, polynomial operations using linked lists, an inventory system using hashing, and a word frequency counter using binary search trees. The document provides a title, description, and requirements for each proposed project.

Uploaded by

nenase
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 13

KLEF: FED: Department of BES-I

19SC1202 -Data Structure


Mini projects
Project-1
Title: Implementation of stack Applications
Description: The main aim of this project is to implement the various applications of stack
data structure in C programming language. There are three modules in this project
 Conversion of infix expression to post fix expression: user enters infix expression
as input, it converts given infix expression to postfix expression
 Evaluation of postfix expressions: it takes the postfix expression generated in above
module and evaluates that postfix expression
 Balancing of symbols: user enters an expression with all kinds of symbols, it
validates whether all the brackets in given expression are properly used or not
Requirements: To implement this project student should have knowledge on
 Working of stack data structure
 Pointers, strings, functions and structures in C Programming Language
 Operator precedence and associativity rules

Project-2
Title: Implementation of Linked List Applications
Description: The main aim of this project is to implement one of the most important
applications of linked list such as polynomial operations such as addition, subtraction,
multiplication and derivation. To perform these operations each polynomial needs to
represent in one linked list and each node in the list contains three parts to store coefficient,
exponent and link to next term of polynomial respectively. There are four modules in in this
project
 polynomial Addition
 polynomial subtraction
 polynomial multiplication
 polynomial derivation
Requirements: To implement this project student should have knowledge on
 creating using linked lists
 pointers, self-referential structures
 polynomial operations

Project-3
Title: Hash based Inventory System
Description: The main aim of this project is to implement a hashing algorithm to create a list
of inventory parts and their quantities sold. There are three modules in this project
 Construction of hash table: HASH tables are widely used to quickly search and
retrieve information from enormous amounts of data. In this for spare part code its
code is taken and generates hash code and spare part record to search retrieve.
 Search for an inventory item: In this the user has enter spare part code, it generates
respective hash code to access respective spare part record and prints that record
indicates its quantity sold
 Reports: In this module it has to generate a complete report of spare parts and their
quantity sold.
Requirements: To implement this project student should have knowledge on
 Indexing
 Hash tables
 Hashing functions

Project-4
Title: Comparative study on sorting algorithms
Description: The main aim of this project is to perform a comparative study on various
sorting techniques on the basis of time complexity and space complexity. There are three
modules in this project
 Implementation of sorting techniques
 Comparison based on time complexity
 Comparison based on space complexity
Requirements: To implement this project, students should have knowledge on
 Sorting algorithms
 Asymptotic notations
 C programming skills

Project-5
Title: Bill Notification System
Description: The main aim of this project is to implement bill notification system, which
alerts the user to pay the bill based on its due date. There are three modules in this project
 Creating priority queue of bills
 Managing priority of bills based on due date
 User alerts
Requirement: To implement this project, students should have knowledge on
 Priority queues
 Input and output statements
 Structures, pointers

Project –6
Title: Stock Exchange Information Base
Description: Companies and people often buy and sells stocks. Often they buy the same
stock for different prices at different times. Say a person owns 1000 shares a certain stock
(such as Checkpoint), she may have bought the stock in amounts of 100 shares over 10
different times with 10 different prices.
In this assignment, you will be using a queue for storing data for FIFO accounting You
should use an array based implementation for your queue based implementation or a linked
list for implementing your queue.
Your queue should have records with the following fields: The name of the stock (a string or
int), the number of shares of a stock (an int), the purchase price (can be a decimal).
You can assume that the first element of the structure is the security bought first, the second
was bought second, etc. The user should be able to enter information about various stocks,
the amount of shares, and the price. The user can then enter a query about a certain stock and
the cost according to the FIFO accounting methods for a certain number of shares.
The following could be your menu:
Press 1 to enter a new stock Press 2 to find the LIFO and FIFO price for a stock. If 1 is
pressed, the user needs to enter the stock symbol, and the number of shares, and the price. If 2
is pressed, the user needs to enter the stock symbol being queried and the number of shares in
question.
Modules: 1. Menu driven Function
2. Creation of Stock Information
3. Query based on input

Project -7
Title: Banking system
Description:A bank needs to maintain records of its customers. It is decided to create a file
using BST-Tree or any other data structure which you think is useful. The order is based on
the key and the Social Security number of each Customer. Each record contains the following
information:
Name,
Social Security Number (SSN)
Address: Street City State Pincode (Can use a Nested Structure for this)
Date of Birth
Marital Status
Account Number
Account Type (Fixed, Saving, etc.)
A File needs to be designed to provide menu driven facility to its users.
Modules:The facilities are:
I. Insert the record for a new customer
2. Find and display the record for a customer specified by name or by Social Security
Number(SSN)
3. Update the record
4. Delete the record of a customer from the file
Use SSN for BST Project.

Project – 8
Title: Sparse Matrix Implementation
Description: Implement a sparse matrix in which any or most of the entries are zero. Because
allocating memory space for all entries of the matrix will be wasteful we intend to allocate
memory space only for nonzero entries.
Modules:
(a) Represent a sparse matrix as a doubly linked circular or any other data structure which
you think is useful.
(b) Write a program to perform the following operations: (i) Read in inputs for the entries of
a sparse matrix and form a suitable data structure. (ii) Addition of two sparse matrices (iii)
Subtraction of two sparse matrices (iv) Multiplication of two sparse matrices (v) Print sparse
matrix (in matrix form).
Hint: Each entry of a sparse matrix can be viewed as a structure of the form:
Row-index,Column-index,Value Left pointer to pointer.
Row index points to the next row (i.e. down). Column-index points to the next column (i.e.
right). Value points to the information of data type added. Left pointer points to the element
towards the next left element. Right pointer points to the element towards the next up
element.

Project – 9
Title: Student Information System
Description:This can be used as a file of student’s information for a department. The
program should be able to dynamically allocate or deallocate storage for the student’s records
using linked lists. The file should have the following fields: the first and last names, a course
code, and a grade for a student.
Modules:
1. Insertion of student record
2. Searching for student record
3. Updating of student record
4. Deletion of student record

Project – 10
Title: Mini-Telephone Directory
Description:Implementa Mini-Telephone Directory using a hash table with separate
chaining.

Project – 11
Create an AVL tree application that uses a tree structure containing all of the words in a
document, with a count of the number of times each word is used. Each entry in the AVL tree
contains a word from the document and a pointer to an integer that contains a count of the
number of times the word appears in the document.
Module: 1
1. Program: counts the words in a file.
2. Function: Reads file and creates AVL tree containing list of all words used in the file with
count of the number of times each word is found in the file.
3. Function: Reads one word from file.
4. Function: compares two integers identified by pointers to integers.
5. Function: Prints the list with the count for each word.
6. Function: Prints one word from the list with its count.

Project – 12
Title: Hospital Management
Description:Consider a file of patient’s information for a hospital. The program should be
able to allocate and deallocate storage memory for the patient’s records. The file should have
the following information field: the first and last names, patient id, address, related disease,
date of admission. Devise an appropriate C structures and circular queue using arrays to
implement the following functions:
a) creation of circular queue, b) accessing the element from the circular queue, and c)
searching element from the circular queue.

Project – 13
Title: Word Tree
Description: Parsing a file is when you read a file to collect information from the file. In this
assignment, you will parse a file, and put all of the words in a BST. You will use the BST to
collect data about the number of times a word was found in the file. You should make no
assumptions about which letters are in the middle (like M). The first word you encounter will
be the root. If the next word is greater, put it to the right. If it is less, put it to the left. It is
possible that the tree you make will be very sparse (think what happens when the first word is
zylberstein). Assume all words in the file are lower case (you can convert them easily
anyway). I would recommend using the string library (it makes comparisons much better).
Devise appropriate functions for a) creating a BST, b) adding any word, c) deleting any
word, d) modification of any word, and e) searching any word in a BST.

Project – 14
Title: Binary Search Tree and its operations
Description: Implement BST and all its operations
1. Creation
2. Insertion of a node
3. Deletion of a node
4. Preorder
5. Inorder
6. Postorder traversals.
7. Search

Project – 15
Title: AVL Tree and its operations
Description: Implement AVL and all its operations (all rotations).

Project – 16
Title: Dictionary
Description:Creating dictionary using linked list.
Modules:
1)adding words
2)Searching words
3)Display dictionary
4)Deleting

Project – 17
Title: Library Book Circulation System
Description:The library circulation system will keep track of every book as well as library
cardholders. Each time a book is checked out or returned, the system must keep trackof it.
Books can be added to the library’s collection and also removed. Due dates forbooks should
be tracked, as well as notices sent out for materials that are more than aweek overdue. Fines
for overdue materials should be calculated, and a record kept of theamount owed by each
cardholder.Design appropriate classes that keep records of book(book no, book name,
authorname), cardholders (member no, member name, age, address, city)
andissue_return(book no, member no, date of issue, date of return, fine).
The modules in this project are
 keeping records of books
 keeping records of videos and
 keeping records of audios

Project – 18
Title: Movie Ticket Booking
Description: The main purpose of online ticket booking system is to provide another way for
the customer to buy cinema ticket.It is an automatic system, where we will automate the
reservation of tickets and enquiries about availability of tickets. After inserting the data to
file, staff need not to worry about the orders received through the system and hence reduces
the manual work. One of the best features of the system is to refund the amount on
cancellation of tickets by customer.
The modules in this project are
 To provide an anytime anyplace service for the customer
 To provide refund
 To minimize the number of staff at the ticket box
 To promote the film on the internet
 To increase the profit

To obtain statistic information from the booking record

Project – 19
Title: TrainTicket
Description:Forjourneyof longer distances though we have airways most of the people use
the railways, which is most convenient, affordable means of transport in India. So keeping
this in view, the reservation of railways is a most important task and it must be faster and
efficient as the demand (travellers) is very high. In order to meet this demand, manual
reservation is completely ruled out and it requires an efficient program to implement the
online reservation.

This program enables us to choose the train even there is no necessary to fill a form at the
railway reservation counter, i.e. we can directly select from the choices provided for us with
train numbers and their origin, departure time, destination & arrival time at that station and
the class to travel in. If there is any concession, we can also avail it and then program gives
us the final output as train ticket with the amount to be paid. It is completely developed in C
language without using graphics. But through VDU basics we achieved the colors in it.

This simplifies the risks and makes things faster in the mode of railways!!!!

Project- 20
Title: Implementation of undo redo operations
Description: The main aim of this project is to implement redo and undo operations using
double ended queue. The modules in this project are
 Enqueuer the previous operation into queue
 Dequeuer the previous operation to redo
 Applying undo and redo
Requirements: To implement this project student should have knowledge on
 Redo undo operations
 Functionality of double ended queue

Project – 21
Title: Palindrome Detector

A palindrome is a phrase that reads the same forwardsas it does backwards. For example, “a
man, a plan, a canal, Panama,” is a palindrome. Writea program that uses a stack to check for
palindromes in each line of a text file. Try yourprogram on the example text file,

Your program should output the palindromes that it finds in the document. For example:

"a man, a plan, a canal, Panama" is a palindrome.

"Don’t nod" is a palindrome.

"Taco Cat!" is a palindrome.

Project – 22
Title: Employee Management
Description:Create an employee Management system using Linked List. The data should be
kept in a file.
Do the following operations.
1. Creation
2. Insertion
3. Deletion
4. Search
5. Update
6. Sort b
7. Display the data
8. Merge two separate lists i.e Merge 2 departments data

Project –23
Title: Expression Trees using BST
Description: Implement the expression trees using BST.
1. Creation
2. Derive Infix expression.
3. Derive Prefix expression.
4. Derive Postfix expression.
Project –24
Tic-Tac-Toe Game
 The game is to be played between two people (in this program between HUMAN and
COMPUTER).
 One of the player chooses ‘O’ and the other ‘X’ to mark their respective cells.
 The game starts with one of the players and the game ends when one of the players
has one whole row/ column/ diagonal filled with his/her respective character (‘O’ or
‘X’).
 If no one wins, then the game is said to be draw.

Project –25
Title: Spell Checker
Objective
1. To give students practice writing functions.
2. To give students practice using C strings.
3. To give students practice utilizing an array of strings (two dimensional array).
Problem: Spell Checker
Many of us have horrible spelling and would get great practical use out of a spell-checker. In
this assignment, you will write a simplified version of a spell checker. In the process, you
will write several of your own string functions.
Implementation Details: string functions to write
Note: Assume that all of the formal parameters for each of the functions below are
lowercase alphabetic strings.

A string is a substring of another one if all of its letters appear contiguously (in the same
order) in the second string. For example, “bound” is a substring of “homebound” and “ire” is
a substring of “firefly”, but “car” is NOT a substring of “camera” because the letters ‘m’ and
‘e’ are in between the letters ‘a’ and ‘r’ in “camera.”
// Returns true if shortstr is a substring of longstr,
// and false otherwise.
int substring(char shortstr[], char longstr[]);

A string is a subsequence of another string if all the letters in the first string appear in the
second string, in the same ordering, but not necessarily contiguously. For example, “car” is a
subsequence of “camera”, since the letters ‘c’,’a’, and ‘r’ appear in that order (but not
contiguously) in “camera.” Similarly, “hikes” is a subsequence of “chickens,” but “tale” is
NOT a subsequence of “wallet” because the letter ‘t’ occurs AFTER the letter ‘a’ in “wallet.”

// Returns true if shortstr is a subsequence of longstr,


// and false otherwise.
int subsequence(char shortstr[], char longstr[]);
A permutation of letters is simply a different ordering of those letters. For example, “care” is
a permutation of “race” and “spill” is a permutation of “pills,” but “apple” is NOT a
permutation of “pale” because the letter ‘p’ appears only once instead of twice in “pale.” A
natural consequence of this definition is that two strings can only be permutations of one
another if they are both the same length.

// Returns true if string1 and string2 are permutatations


// of each other, false otherwise.
int permutation(char string1[], char string2[]);

When we are comparing two strings of equal length, we can define a term called “match
score” which is simply the number of corresponding letters in which the two strings disagree.
For example, the match score between “drink” and “blank” is 3 because the first three letters
don’t match. The match score between “marker” and “master” is two because letters 3 (r vs.
s) and 4 (k vs. t) do not match.

// Precondition: string1 and string2 are the same length


// and only contain lowercase letters.
// Postcondition: returns the score of the match score
// between these two strings.
int matchscore(char string1[],char string2[]);
Input File Format(dictionary.txt)

The first line of the file will have a single positive integer, n (n ≤ 30000), representing the
number of words in the file. The following n lines will contain one word each, in alphabetic
order. All words will contain lowercase letters only and will be no longer than 29 letters
long.

Here is a short sample dictionary:

5
apple
boat
car
dog
elephant
What your program should do

Your program should first read in the dictionary into a two-dimensional character array (from
dictionary.txt) and print a message to the screen stating that the dictionary has been loaded.

Then your program should prompt the user to enter a word, all lowercase.

If the word is in the dictionary, you should simply print out a message stating this.

If the word is NOT in the dictionary, then you should provide a list of possible suggestions
(of correctly spelled words that the user might have been trying to spell) in alphabetical order.

Here are the criteria for whether or not a real word should end up on this list:

1) If either string is a substring of the other, and the lengths of the two strings are within
2 of one another.
2) If either string is a subsequence of the other and the lengths of the two strings are
within 2 of one another. (This would get rid of the “car”, “camera” case, for example.)
3) If the strings are permutations of one the other. (Only try this test if the two strings are
of the same length.)
4) If the matchscore between the two strings is less than 3. (Only try this test if the two
strings are of the same length.)

Continue prompting the user to enter words until they decide that they don’t want to enter any
more. (Thus, they will be forced to enter the first word, but after that, you’ll provide them a
choice as to whether or not they want to enter another word to check.

Sample Output (with a real dictionary)


Welcome to the Spell Checker!
The dictionary has been loaded.

Please enter the word you would like checked.


flag

Great, flag is in the dictionary!

Would you like to enter another word? (yes/no)


yes

Please enter the word you would like checked.


peice

Here are the possible words you could have meant:

alice
beige
brice
deuce
fence
heine
hence
ice
juice
paine
peace
peach
peale
pease
pee
pence
perch
percy
perle
peste
pewee
pie
piece
place
poise
ponce
price
prick
pride
prime
prize
reich
seize
slice
spice
twice
voice
Would you like to enter another word? (yes/no)
yes

Please enter the word you would like checked.


independant

Here are the possible words you could have meant:

independent

Would you like to enter another word? (yes/no)


no

You might also like