Professional Documents
Culture Documents
Industrail Taining Project
Industrail Taining Project
ON
SIMULATION OF DATA STRUCTURE AND ALGORITHMS
SUBMITTED BY:
SHAHRUKH KHAN (TCA1901075)
Under the supervision of
SEPTEMBER, 2021
STUDENT DECLARATION
The information and data given in the report is authentic to the best of my
knowledge.
This Training Report is not being submitted to any other University for award of
any other Degree, Diploma and Fellowship.
Date:
Signature :
Shahrukh Khan
TCA1901075
i
SIMULATION OF DATA STRUCTURE AND ALGORITHMS
TRAINING CERTIFICATE
Date:
For INTERNSHALA
Company Seal (if Possible, else the Certificate should be on Company Letter Head)
ii
SIMULATION OF DATA STRUCTURE AND ALGORITHMS
ACKNOWLEDGEMENT
We would like to express our sincere gratitude to our Project Coordinator “MR.
RAJENDRA P. PANDEY”, “ASSISTANT PROFESSOR”, “CCSIT”, TMU, for his kind
support and encouragement throughout this course of work.
Date:
Signature
(SHAHRUKH KHAN)
iii
SIMULATION OF DATA STRUCTURE AND ALGORITHMS
ABSTRACT
To make the student easier to study how the operations on data structure and
various algorithms are performed the data structure can be stack, queue and
linked list, etc and algorithms are sorting like bubble sort, insertion sort, etc.
Programming language:
1. HTML
2. JAVA
iv
SIMULATION OF DATA STRUCTURE AND ALGORITHMS
Abbreviation Description
v
TMU-FOE&CS Version 5.0 T004C-Project/Training Report
Table of Contents
1 PROJECT INTRODUCTION................................................................................................................................. 3
1.1 BACKGROUND OF THE PROJECT.................................................................................................................................3
1.2 TRAINING/ PROJECT OBJECTIVE.................................................................................................................................3
1.3 EXPECTED OUTCOME FROM THIS PROJECT/ TRAINING...................................................................................................3
1.4 SCOPE OF STUDY.....................................................................................................................................................3
1.5 TOOLS & TECHNOLOGY USED....................................................................................................................................3
2 PROJECT DESCRIPTION..................................................................................................................................... 3
2.1 INTRODUCTION & WORKING PRINCIPLE......................................................................................................................3
2.1.1 Component 1..................................................................................................................................................4
2.1.2 Component 2..................................................................................................................................................4
2.1.3 Component n.................................................................................................................................................4
2.2 DESIGN & METHODOLOGY.......................................................................................................................................4
2.2.1 Flow Chart......................................................................................................................................................4
2.2.2 Block Diagram/ Machine Diagram................................................................................................................4
2.2.3 Design Calculation.........................................................................................................................................4
2.2.4 Constraints, if any..........................................................................................................................................4
2.3 WORKING OF PROJECT.............................................................................................................................................4
2.3.1 Circuit Diagram/ Assembled View.................................................................................................................4
2.3.2 Hardware Description (if any)........................................................................................................................4
2.3.3 Software Programming (if any).....................................................................................................................4
2.3.4 Assumptions, if any........................................................................................................................................4
2.4 SNAPSHOTS (IF ANY)................................................................................................................................................5
3 TRAINING MODULE......................................................................................................................................... 5
4 RESULTS & FINDINGS....................................................................................................................................... 5
4.1 RESULTS................................................................................................................................................................5
4.2 OBSERVATIONS.......................................................................................................................................................5
4.3 SAFETY INSTRUCTIONS (IF ANY)..................................................................................................................................5
4.4 ASSUMPTIONS (IF ANY)............................................................................................................................................5
4.5 LEARNING AFTER TRAINING.......................................................................................................................................5
5 SUGGESTIONS & RECOMMENDATIONS............................................................................................................ 5
6 CONCLUSION................................................................................................................................................... 5
7 REFERENCES.................................................................................................................................................... 5
8 APPENDIX (IF ANY).......................................................................................................................................... 6
9 ANNEXURE (IF ANY)......................................................................................................................................... 6
<Guidelines: Use References->Insert Caption->Choose Figure or Table appropriately then click on “OK”. This
creates Label. Write the Figure or Table description at this “ Label” & then colon as shown in example.
Update appropriately List of Figures & List of Table, by right click on the selection and choose “Update
Field”.>
List of Figures
Figure 1: TEST FIGURE......................................................................................................................................4
List of Tables
Table 1: TEST TABLE.........................................................................................................................................4
1 Project Introduction
Aim behind implementation of this project to make a clear understability of
various algorithms of data structures. Using a web page this will simulates the
data structure operations such as searching, sorting, insertion, deletion, etc. In
array, stack, queue, and linked list as well. Thus our web page provides effective
and efficient knowledge of data structures. This also provide some theoretical
knowledge regarding the data structure.
procedures for data preparation, those steps necessary to put the inputs and the
desired output, i.e. maximum user friendly. Proper messages and appropriate
directions can control errors committed by users. The output design is the key to
the success of any system. Output is the key between the user and the sensor. The
output must be concerned to the system’s working, as it should. Output design
consists of displaying specifications and procedures as data presentation. User
never left with the confusion as to what is happening without appropriate error and
acknowledges message being received.
written in languages such as JavaScript which affect the behavior of HTML web
pages.
JAVA-
Java is a computer programming language that is concurrent, classbased, object-
oriented, and specifically designed to have as few implementation dependencies as
possible. It is intended to let application developers "write once, run anywhere"
(WORA), meaning that code that runs on one platform does not need to be
recompiled to run on another. Java applications are typically compiled to bytecode
(class file) that can run on any Java virtual machine (JVM) regardless of computer
architecture.
2 Project Description
In computer science, a data structure is a particular way of storing and organizing
data in a computer so that it can be used efficiently Different kinds of data
structures are suited to different kinds of applications, and some are highly
specialized to specific tasks. For example, B-trees are particularly well-suited for
implementation of databases, while compiler implementations usually use hash
tables to look up identifiers.
Data structures provide a means to manage large amounts of data efficiently, such
as large databases and internet indexing services. Usually, efficient data structures
are a key to designing efficient algorithms. Some formal design methods and
programming languages emphasize data structures, rather than algorithms, as the
key organizing factor in software design. Storing and retrieving can be carried out on
data stored in both main memory and in.
Tree:
A tree data structure can be defined recursively (locally) as a collection of nodes
(starting at a root node), where each node is a data structure consisting of a value,
together with a list of references to nodes (the "children"), with the constraints that
no reference is duplicated, and none points to the root. Alternatively, a tree can be
defined abstractly as a whole (globally) as an ordered tree, with a value assigned to
each node. Both these perspectives are useful: while a tree can be analyzed
Linked List:
Linked lists are among the simplest and most common data structures. They can be
used to implement several other common abstract data types, including lists (the
abstract data type), stacks, queues, associative arrays, and S-expressions, though it
is not uncommon to implement the other data structures directly without using a
list as the basis of implementation. The principal benefit of a linked list over a
conventional array is that the list elements can easily be inserted or removed
without reallocation or reorganization of the entire structure because the data
items need not be stored contiguously in memory or on disk. Linked lists allow
insertion and removal of nodes at any point in the list, and can do so with a constant
number of operations if the link previous to the link being added or removed is
maintained during list traversal. On the other hand, simple linked lists by
themselves do not allow random access to the data, or any form of efficient
indexing. Thus, many basic operations — such as obtaining the last node of the list
(assuming that the last node is not maintained as separate node reference in the list
structure), or finding a node that contains a given datum, or locating the place
where a new node should be inserted — may require scanning most or all of the list
elements.
Algorithms
Bubble Sort:
Bubble sort, sometimes incorrectly referred to as sinking sort, is a simple sorting
algorithm that works by repeatedly stepping through the list to be sorted,
comparing each pair of adjacent items and swapping them if they are in the wrong
order. The pass through the list is repeated until no swaps are needed, which
indicates that the list is sorted. The algorithm gets its name from the way smaller
elements "bubble" to the top of the list. Because it only uses comparisons to
Selection Sort:
selection sort is a sorting algorithm, specifically an in-place comparison sort. It has
O(n2) time complexity, making it inefficient on large lists, and generally performs
worse than the similar insertion sort. Selection sort is noted for its simplicity, and it
has performance advantages over more complicated algorithms in certain
situations, particularly where auxiliary memory is limited. The algorithm divides the
input list into two parts: the sublist of items already sorted, which is built up from
left to right at the front (left) of the list, and the sublist of items remaining to be
sorted that occupy the rest of the list. Initially, the sorted sublist is empty and the
unsorted sublist is the entire input list. The algorithm proceeds by finding the
smallest (or largest, depending on sorting order) element in the unsorted sublist,
exchanging it with the leftmost unsorted element (putting it in sorted order), and
moving the sublist boundaries one element to the right.
Insertion sort:
Insertion sort is a simple sorting algorithm that builds the final sorted array (or list)
one item at a time. It is much less efficient on large lists than more advanced
algorithms such as quicksort, heapsort, or merge sort. However, insertion sort
provides several advantages:
Efficient for (quite) small data sets Adaptive (i.e., efficient) for data sets that are
already substantially sorted: the time complexity is O(n + d), where d is the number
of inversions More efficient in practice than most other simple quadratic (i.e., O(n2))
algorithms such as selection sort or bubble sort; the best case (nearly sorted input)
is O(n) Stable; i.e., does not change the relative order of elements with equal keys
In-place; i.e., only requires a constant amount O(1) of additional memory space
Online; i.e., can sort a list as it receives it When humans manually sort something
(for example, a deck of playing cards), most use a method that is similar to insertion
sort.[1]
Quick sort:
Quicksort, or partition-exchange sort, is a sorting algorithm developed by Tony
Hoare that, on average, makes O(n log n) comparisons to sort n items. In the worst
case, it makes O(n2) comparisons, though this behavior is rare. Quicksort is often
faster in practice than other O(n log n) algorithms.Additionally, quicksort's
sequential and localized memory references work well with a cache. Quicksort is a
comparison sort and, in efficient implementations, is not a stable sort. Quicksort can
be implemented with an in-place partitioning algorithm, so the entire sort can be
done with only O(log n) additional space used by the stack during the recursion.
represent a subtree itself. If a binary tree is traversed in-order, the output will
produce sorted key values in an ascending order.
Linked List:
A linked list is a linear data structure, in which the elements are not stored at
contiguous memory locations. The elements in a linked list are linked using
pointers as shown in the below image:
In simple words, a linked list consists of nodes where each node contains a
data field and a reference(link) to the next node in the list.
2.1.1 Component 1
2.1.2 Component 2
2.1.3 Component n
when building a graphical user interface (GUI). A text box's purpose is to allow the
user to input text information to be used by the program. User-interface guidelines
recommend a single-line text box when only one line of input is required, and a
multi-line text box only if more than one line of input may be required. Non-editable
text boxes can serve the purpose of simply displaying text. A typical text box is a
rectangle of any size, possibly with a border that separates the text box from the
rest of the interface. Text boxes may contain zero, one, or two scrollbars. Text boxes
usually display a text cursor (commonly a blinking vertical line), indicating the
current region of text being edited. It is common for the mouse cursor to change its
shape when it hovers over a text box.
the system either through discussion with people who work with the users and/or
the potential users themselves. Typical questions involve: What would the user
want the system to do? How would the system fit in with the user's normal
workflow or daily activities? How technically savvy is the user and what similar
systems does the user already use? What interface look & feel styles appeal to the
user? Information architecture – development of the process and/or information
flow of the system (i.e. for phone tree systems, this would be an option tree
flowchart and for web sites this would be a site flow that shows the hierarchy of the
pages).
Prototyping – development of wireframes, either in the form of paper prototypes or
simple interactive screens. These prototypes are stripped of all look & feel elements
and most content in order to concentrate on the interface. Usability inspection –
letting an evaluator inspect a user interface. This is generally considered to be
cheaper to implement than usability testing (see step below), and can be used early
on in the development process since it can be used to evaluate prototypes or
specifications for the system, which usually can't be tested on users. Some common
usability inspection methods include cognitive walkthrough, which focuses the
simplicity to accomplish tasks with the system for new users, heuristic evaluation, in
which a set of heuristics are used to identify usability problems in the UI design, and
pluralistic walkthrough, in which a selected group of people step through a task
scenario and discuss usability issues. Usability testing – testing of the prototypes on
an actual user—often using a technique called think aloud protocol where you ask
the user to talk about their thoughts during the experience. Graphic interface design
– actual look and feel design of the final graphical user interface (GUI). It may be
based on the findings developed during the usability testing if usability is
unpredictable, or based on communication objectives and styles that would appeal
to the user. In rare cases, the graphics may drive the prototyping, depending on the
importance of visual form versus function. If the interface requires multiple skins,
there may be multiple interface designs for one control panel, functional feature or
widget. This phase is often a collaborative effort between a graphic designer and a
user interface designer, or handled by one who is proficient in both disciplines.
OUTPUT DESIGN
Designing computer output should proceed in an organized, well throughout
manner; the right output element is designed so that people will find the system
HTML
HTML or HyperText Markup Language is the main markup language for creating web
pages and other information that can be displayed in a web browser. HTML is
written in the form of HTML elements consisting of tags enclosed in angle brackets
(like ), within the web page content. HTML tags most commonly come in pairs like,
although some tags represent empty elements and so are unpaired, for example
Error! Filename not specified.. The first tag in a pair is the start tag, and the second
tag is the end tag (they are also called opening tags and closing tags). In between
these tags web designers can add text, further tags, comments and other types of
text-based content. The purpose of a web browser is to read HTML documents and
compose them into visible or audible web pages. The browser does not display the
HTML tags, but uses the tags to interpret the content of the page. HTML elements
form the building blocks of all websites. HTML allows images and objects to be
embedded and can be used to create interactive forms. It provides a means to
create structured documents by denoting structural semantics for text such as
headings, paragraphs, lists, links, quotes and other items. It can embed scripts
written in languages such as JavaScript which affect the behavior of HTML web
pages.
JAVA
Java is a computer programming language that is concurrent, classbased, object-
oriented, and specifically designed to have as few implementation dependencies as
NONE
3 Training Module
4 Results& Findings
4.1 Results
4.2 Observations
6 Conclusion:
From earlier classes itself,we were studying about the data structures and
algorithms. Some of us are just by hearting the code.ie, we don’t know how the
working is going on there.And also we didn’t get an idea about these things. So
our applet provides the clear and detail idea about the data structure and
algorithms,and more over how the operations are done in recursion algorithms
and data structure. And the animated representation makes more easier and
better understandability on this topic.Outcome of this applet is make easier and
simple way to understand about the algorithms.
7 References
<Guidelines: Mention details, like:
a) Provide a complete list of all documents/ Journal/ Research Paper referenced for Project
b) MentionTitle, ID (if applicable), date, and publishing organization
c) Specify the sources from which the references is obtained.