- DSA using Java Tutorial
- DSA using Java - Home
- DSA using Java - Overview
- DSA using Java - Environment Setup
- DSA using Java - Algorithms
- DSA using Java - Data Structures
- DSA using Java - Array
- DSA using Java - Linked List
- DSA using Java - Doubly Linked List
- DSA using Java - Circular Linked List
- DSA using Java - Stack
- DSA - Parsing Expressions
- DSA using Java - Queue
- DSA using Java - Priority Queue
- DSA using Java - Tree
- DSA using Java - Hash Table
- DSA using Java - Heap
- DSA using Java - Graph
- DSA using Java - Search techniques
- DSA using Java - Sorting techniques
- DSA using Java - Recursion
- DSA using Java Useful Resources
- DSA using Java - Quick Guide
- DSA using Java - Useful Resources
- DSA using Java - Discussion

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

# DSA using Java - Overview

## What is a Data Structure?

Data Structure is a way to organized data in such a way that it can be used efficiently. Following terms are foundation terms of a data structure.

**Interface**− Each data strucure has an interface. Interface represents the set of operations that a datastructure supports.An interface only provides the list of supported operations, type of parameters they can accept and return type of these operations.**Implementation**− Implementation provides the internal representation of a data structure. Implementation also provides the defination of the alogrithms used in the opreations of the data structure.

## Characteristics of a Data Structure

**Correctness**− Data Structure implementation should implement its interface correctly.**Time Complexity**− Running time or execution time of operations of data structure must be as small as possible.**Space Complexity**− Memory usage of a data structure operation should be as little as possible.

## Need for Data Structure

As applications are getting complex and data rich, there are three common problems applications face now-a-days.

**Data Search**− Consider an inventory of 1 million(10^{6}) items of a store. If application is to search an item. It has to search item in 1 million(10^{6}) items every time slowing down the search. As data grows, search will become slower.**Processor speed**− Processor speed although being very high, falls limited if data grows to billon records.**Multiple requests**− As thousands of users can search data simultaneously on a web server,even very fast server fails while searching the data.

To solve above problems, data structures come to rescue. Data can be organized in a data structure in such a way that all items may not be required to be search and required data can be searched almost instantly.

## Execution Time Cases

There are three cases which are usual used to compare various data structure's execution time in relative manner.

**Worst Case**− This is the scenario where a particular data structure operation takes maximum time it can take. If a operation's worst case time is ƒ(n) then this operation will not take time more than ƒ(n) time where ƒ(n) represents function of n.**Average Case**− This is the scenario depicting the average execution time of an operation of a data structure. If a operation takes ƒ(n) time in execution then m operations will take mƒ(n) time.**Best Case**− This is the scenario depicting the least possible execution time of an operation of a data structure. If a operation takes ƒ(n) time in execution then actual operation may take time as random number which would be maximum as ƒ(n).