This book employs an object-oriented approach to teaching data structures using Java. Many worked examples and approximately 300 additional examples make this book easily accessible to the reader. Most of the concepts in the book are illustrated by several examples, allowing readers to visualize the processes being taught. Introduces abstract concepts, shows how those concepts are useful in problem solving, and then shows the abstractions can be made concrete by using a programming language. Equal emphasis is placed on both the abstract and the concrete versions of a concept, so that the reader learns about the concept itself, its implementation, and its application. For anyone with an interest in learning more about data structures.
Download Zip >>>>> https://t.co/5TQ2wk5tHe
Data Structures Using Java is an introduction to data structure abstraction. It provides information on abstract concepts and shows students how those concepts are useful in problem solving. It goes on to demonstrate that abstractions can be made concrete by using Java. Java is an appropriate language to use in teaching the concepts of data abstraction since it contains the control structures necessary to make programs readable and allows basic data structures such as stacks, linked lists and trees to be implemented in a variety of ways.
This text is designed for a two-semester course in data structures and programming. For several years, we have taught a course in data structures to students who have completed a semester course in high-level language programming. We found that a considerable amount of time was spent in teaching programming techniques because the students did not have sufficient background in programming and were unable to implement abstract structures on their own. The brighter students eventually caught on. The weaker students never did. Based on this experience, we have reached the firm conviction that a first course in data structures must go hand-in-hand with a second course in programming. This text is a product of that conviction.
The text introduces abstract concepts, shows how they are useful in problem solving, and then shows how the abstractions can be made concrete by using a programming language. Equal emphasis is placed on both the abstract and concrete versions of concepts, so that the students learn about the concept itself, its implementation, and its application. The language used in this text is Java. Java is-well suited to such a course because it contains the control structures necessary to make programs readable and allows basic data structures, such as stacks, linked lists, and trees, to be implemented in a variety of ways. This allows students to appreciate the choices and tradeoffs that face a programmer in a real situation. Java is widely used on many different computers and continues to grow in popularity. The fact that Java is object-oriented allows students to go more easily from abstractions to implementations.
Chapter 1 is an introduction to data structures. Section 1.1 introduces abstract data structures and implementations. Sections 1.2 and 1.3 introduce arrays and classes in Java. Chapter 2 discusses stacks and their Java implementation. Since the stack is the first new data structure introduced, considerable discussion of the pitfalls of implementing it is included. Section 2.3 introduces postfix, prefix, and infix notations. Chapter 3 covers recursion, its applications, and its implementation. Chapter 4 introduces queues, priority queues, and linked lists and their implementations, using arrays of available nodes as well as dynamic storage. Chapter 5 discusses trees, Chapter 6 introduces O notation and covers sorting, and Chapter 7 covers both internal and external searching. Chapter 8 introduces graphs, and chapter 9 discusses storage management.
This text covers the following knowledge units as described in the report Computing Curricula 2001 of the ACM/IEEECS Joint Curriculum Task Force: PF2 (Algorithms and problem-solving), PF3 (Fundamental data-structures), PF4 (Recursion), DSS (Graphs and trees), ALI (Basic Algorithmic analysis), AU (Fundamental computing algorithms), and PL6 (Object-oriented programming). The book can be used for the following courses of that curriculum: CS 1031 (Data Structures and Algorithms); CS 1121 (Data Abstraction); CS103o (Algorithms and Data Structures); as a supplement to CS 1120 (Object-Oriented Design and Methodology); CS 102s (Algorithms and Programming Techniques) and CS 1038 (Principles of Object-Oriented Design); and as a supplement to CS 112A (Programming Methodology).
Purely functional data structures (PDF), also available as a book in book stores. It's language agnostic and the code of the book is in ML, but it says it can easily be ported to strict evaluation language, like Scheme.
31c5a71286