In computer science, data structures is a format for the organization, management and storage of data that enables its wide access and flexibility. Another term closely linked to data structures is algorithms. Algorithms are basically rules that computer follows to generate a certain set of results. Algorithms need to be converted to code. Both of these are relevant in programming and require programming languages to fully function.
There are hundreds of books available on these subjects. They range from a beginner level to a professional level. Each one also differs on the subject matter it covers. To find one best suited to your needs, you probably should understand your initial level of knowledge, and evaluate your readiness to delve into this subject. I think this list of books below probably seems to be incomplete for experienced programmers, but nevertheless i try make some recommendations:
1) Data Structures and Algorithms Made Easy: Data Structures & Algorithmic Puzzles-Author: Narasimha Karumanchi
Data Structures and Algorithms Puzzles is a book that offers examples and their solutions to many Data Structures and Algorithmic problems. It makes complex problems easy to understand and solve. It is a vital book for computer scientists, especially those who plan to give an exam or an interview on the subject. The book book will be comfortable for every beginner or expert of computer science.
2) Data Structures & Algorithms in JAVA-Author: Robert Latore
This book not only explains the subject to you, it makes it extremely simple for you to comprehend. The book provides strong visual aids of data structures and its operation. The book includes example programs at the end of each chapter for you to test your skills and understanding of the topic. In addition, the book also contains a workshop that illustrates the process for further understanding.
3) Data Structures and Algorithms in C++-Authors: Michael T. Goodrich, Roberto Tamassia, David M. Mount
Data Structures and Algorithms in C++ offers an inrtoductory opening to data structures and algorithms. It also discusses their design, analysis and implementation. This book offers a very technical and practical approach to the subject content.
4) Introduction to Java Programming and Data Structures-Y. Daniel Liang
Introduction to Java Programming and Data Structures, contanins a comprehensive introductory guide for fresh admitters of undergraduate program of computer science and software engineering. The book takes huge concepts of programming and makes them easy to understand for beginners. As beginners become comfortable with the basics, they turn to the next step.
5) A common Sense Guide to Data Structures and Algorithm: Level up Your Core Programming Skills-Author: Jay Wengrow
The book discusses in detail the ways to implement them to solve problems. It also relates them to real life scenarios to make them more relevant to problems encountered by every person. The book uses practice questions and visual aids to support the otherwise difficult to comprehend content. The book makes a point of including several languages: Python, C++, JavaScript, Ruby, etc.
6) Data Structures & Algorithms in Java-Michael T. Goodrich, Roberto Tamassia, Michael H. GoldWasser
The book is extremely helpful for undergraduates, especially because of its strong graphic presentation and detailed examples. It includes code examples with full source code and algorithms with relatable daily life examples as well. The content is well-structured witn no extra details. It is practical and easily comprehensible.
7) Data Structures and Other Objects Using C++-Authors: Michael Main, Walter Savitch
Data Structures and Other Objects Using C++ is an outstanding book on Data Structures. The book leaves students with a clear understanding of the basic concepts of Data Structures and Object oriented programming. The book lays out advanced topics and a solid foundation of data types. The book contains information on linked lists and stacks and queues and trees, etc.
Probably it will be enough for the first time to get acquainted with this subject.