View on GitHub

Notes

reference notes

Data structure

The basic idea of a data structure is to store data in a way that meets the needs of your particular application(array, linked list, stack, queue, tree, graph, hash table, etc.).

According to Wikipedia entry on Data Structures:

In computer science, a data structure is a data organization, management, and storage format that is usually chosen for efficient access to data. More precisely, a data structure is a collection of data values, the relationships among them, and the functions or operations that can be applied to the data, i.e., it is an algebraic structure about data.

Different types of data structures are suited to different kinds of applications, and some are highly specialized to specific tasks. For example, relational databases commonly use B-tree indexes for data retrieval, while compiler implementations usually use hash tables to look up identifiers

Usually, efficient data structures are key to designing efficient algorithms.

Algorithms

An algorithm is a set of instructions for accomplishing a task. Every piece of code that is written is an algorithm. The more efficient the algorithm, the faster the program will run.

Why learn algorithms?

“Perhaps the most important principle for the good algorithm designer is to refuse to be content.” -Aho, Hopcroft, and Ullman, The Design and Analysis of Computer Algorithms, 1974

You should always ask, CAN WE DO BETTER?