"Data Structures And Algorithms Made Easy: Data Structure And Algorithmic Puzzles" is a book that offers solutions to complex data structures and algorithms. There are multiple solutions for each problem and the book is coded in C/C++, it comes handy as an interview and exam guide for computer...
A morale booster for all those people who need to binge-read algorithms before a test/interview. The shoddy editing of the book is evident by the direct copy-pasted material from online sources. Wouldn't recommend to anyone to learn Algorithms unless they are on a time crunch.
The book goes through data types, data structures, and algorithms with real-life examples to place the learner in a position to relate the data structures to the kind of problems they solve.
My Notes for Own Future Reference:
Chapter 1: Intro to Data Structures and Algorithms
A data type in a programming language is a set of data with predefined values. Examples of data types are integer, floating-point, unit number, character, string, etc. Computer memory is all filled with zeros and ones. If we have a problem and we want to code it, it’s very difficult to provide the solution in terms of zeros and ones. To help users, programming languages and compilers provide us with data types. For example, integer takes 2 bytes (actual value depends on the compiler), float takes 4 bytes, etc. This says that in memory we are combining 2 bytes (16 bits) and calling it an integer. Similarly, combining 4 bytes (32 bits) and calling it a float. A data type reduces the coding effort. At the top level, there are two types of data types: • System-defined data types (also called Primitive data types) • User-defined data types
Based on the discussion above, once we have data in variables, we need some mechanism for manipulating that data to solve problems. The data structure is a particular way of storing and organizing data in a computer so that it can be used efficiently. A data structure is a special format for organizing and storing data. General data structure types include arrays, files, linked lists, stacks, queues, trees, graphs, and so on. Depending on the organization of the elements, data structures are classified into two types: 1) Linear data structures: Elements are accessed in sequential order but it is not compulsory to store all elements sequentially. Examples: Linked Lists, Stacks and Queues. 2) Non – linear data structures: Elements of this data structure are stored/accessed in a non-linear order. Examples: Trees and graphs
Stacks are seen as a vertical linear collection, whereas queues can be seen as a horizontal linear collection of elements. The collection of plates placed one over the other is a real-world example of a stack, whereas people standing in a queue to pay an electricity bill is a real-world example of the queue
Use a stack when you want to get things out in the reverse order than you put them in. Use a list when you want to get anything out, regardless of when you put them in (and when you don't want them to automatically be removed)
An algorithm is the step-by-step unambiguous instructions to solve a given problem.
Not the best book to pick up if you’re a beginner. The writer has not taken the time to explain the concepts in detail and I felt like it was trying to cover too much in lesser pages. Also, the codes are downright wrong a lot of times. And it’s not interactive at all.
Explains all the Data structures and Algorithms concepts. This books language is easy to understand and it has lots of problems to solve, to strengthen your knowledge.
Typos and no polish. I suspect that the author copied and pasted from multiple sources and rushed it to the printer. Do yourself a favor and pass on this one.
The book is good in the sense that it can be useful to beginners as well as experienced to know/recap the logic. However the book is best suitable to the students who want to prepare for campus placement or to the job seekers.
The language used in the book is very clear and to the point. The author has presented several solution to the same problem keeping in mind the time/space complexity.
This book can also be used as a reference book for revising algorithm.