Java Software Structures



Similar documents
DATA STRUCTURES USING C

Krishna Institute of Engineering & Technology, Ghaziabad Department of Computer Application MCA-213 : DATA STRUCTURES USING C

Java 6 'th. Concepts INTERNATIONAL STUDENT VERSION. edition

CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards

Questions 1 through 25 are worth 2 points each. Choose one best answer for each.

A TOOL FOR DATA STRUCTURE VISUALIZATION AND USER-DEFINED ALGORITHM ANIMATION

Computing Concepts with Java Essentials

1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++

Data Structure [Question Bank]

PES Institute of Technology-BSC QUESTION BANK

AP Computer Science AB Syllabus 1

Data Structures in the Java API

Java the UML Way: Integrating Object-Oriented Design and Programming

Android Application Development Course Program

10CS35: Data Structures Using C

Fundamentals of Java Programming

CSE 326, Data Structures. Sample Final Exam. Problem Max Points Score 1 14 (2x7) 2 18 (3x6) Total 92.

Exam study sheet for CS2711. List of topics

To My Parents -Laxmi and Modaiah. To My Family Members. To My Friends. To IIT Bombay. To All Hard Workers

1. The memory address of the first element of an array is called A. floor address B. foundation addressc. first address D.

RARITAN VALLEY COMMUNITY COLLEGE ACADEMIC COURSE OUTLINE. CISY 105 Foundations of Computer Science

JAVA COLLECTIONS FRAMEWORK

Java EE Web Development Course Program

BCS2B02: OOP Concepts and Data Structures Using C++

5. A full binary tree with n leaves contains [A] n nodes. [B] log n 2 nodes. [C] 2n 1 nodes. [D] n 2 nodes.

Big O and Limits Abstract Data Types Data Structure Grand Tour.

Home Page. Data Structures. Title Page. Page 1 of 24. Go Back. Full Screen. Close. Quit

University of Pune Revised Structure for the B. Sc. (Computer Science) Course (Second Year to be implemented from Academic Year )

Java Application Developer Certificate Program Competencies

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries

Ordered Lists and Binary Trees

Algorithms and Data Structures Written Exam Proposed SOLUTION

Glossary of Object Oriented Terms

How To Teach C++ Data Structure Programming

Basic Programming and PC Skills: Basic Programming and PC Skills:

International Journal of Software and Web Sciences (IJSWS)

DE 6211 DISTANCE EDUCATION. M.Sc. (IT) DEGREE EXAMINATION, MAY PRINCIPLES OF INFORMATION TECHNOLOGY. (2002 onwards) PART A (10 3 = 30 marks)

Java SE 8 Programming

core. Volume I - Fundamentals Seventh Edition Sun Microsystems Press A Prentice Hall Title ULB Darmstadt

2. (a) Explain the strassen s matrix multiplication. (b) Write deletion algorithm, of Binary search tree. [8+8]

Chapter 3: Restricted Structures Page 1

Binary Search Trees CMPSC 122

Domains and Competencies

GUJARAT TECHNOLOGICAL UNIVERSITY, AHMEDABAD, GUJARAT. Course Curriculum. DATA STRUCTURES (Code: )

Objected oriented Programming: C++ Unit 1 1. Introduction 1.1. Introduction to Object Oriented Programming C++ fundamentals.

An Introduction to Programming and Computer Science

Data Structures and Algorithms

Chapter 14 The Binary Search Tree

KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

MAX = 5 Current = 0 'This will declare an array with 5 elements. Inserting a Value onto the Stack (Push)

Syllabus for CS 134 Java Programming

Sample Questions Csci 1112 A. Bellaachia

Data Structures. Level 6 C Module Descriptor

Binary Search Trees (BST)

Computer Science III Advanced Placement G/T [AP Computer Science A] Syllabus

Mobile Web Design with HTML5, CSS3, JavaScript and JQuery Mobile Training BSP-2256 Length: 5 days Price: $ 2,895.00

CSE373: Data Structures and Algorithms Lecture 1: Introduction; ADTs; Stacks/Queues. Linda Shapiro Spring 2016

Summit Public Schools Summit, New Jersey Grade Level / Content Area: Mathematics Length of Course: 1 Academic Year Curriculum: AP Computer Science A

Course Syllabus For Operations Management. Management Information Systems

AP Computer Science A - Syllabus Overview of AP Computer Science A Computer Facilities

CompSci-61B, Data Structures Final Exam

Exercises Software Development I. 11 Recursion, Binary (Search) Trees. Towers of Hanoi // Tree Traversal. January 16, 2013

Data Structures Using C++ 2E. Chapter 5 Linked Lists

Persistent Binary Search Trees

Converting a Number from Decimal to Binary

Lab Manual. Data Structures (Pr): COT-213 Data Structures (P): IT-215

Linked Lists, Stacks, Queues, Deques. It s time for a chainge!

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

CSCI 253. Object Oriented Programming (OOP) Overview. George Blankenship 1. Object Oriented Design: Java Review OOP George Blankenship.

Java (12 Weeks) Introduction to Java Programming Language

CHAPTER 4 ESSENTIAL DATA STRUCTRURES

Data Structures in Java. Session 15 Instructor: Bert Huang

2. Advance Certificate Course in Information Technology

Lecture 2: Data Structures Steven Skiena. skiena

Morris School District. AP Computer Science A Curriculum Grades 9-12

Specialized Programme on Web Application Development using Open Source Tools

Binary Search Trees. A Generic Tree. Binary Trees. Nodes in a binary search tree ( B-S-T) are of the form. P parent. Key. Satellite data L R

History OOP languages Year Language 1967 Simula Smalltalk

Data Structures UNIT III. Model Question Answer

UIL Computer Science for Dummies by Jake Warren and works from Mr. Fleming

Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months

Sorting revisited. Build the binary search tree: O(n^2) Traverse the binary tree: O(n) Total: O(n^2) + O(n) = O(n^2)

Financial Management System

Java Interview Questions and Answers

COMPUTER SCIENCE. 1. Computer Fundamentals and Applications

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation

Syllabus for Computer Science. Proposed scheme for B.Sc Programme under Choice Based Credit System

Outline BST Operations Worst case Average case Balancing AVL Red-black B-trees. Binary Search Trees. Lecturer: Georgy Gimel farb

DIVISION OF INFORMATION TECHNOLOGY PROGRAMS AND SYSTEMS SUPPORT FALL 2015 / Spring 2016

THE OPEN UNIVERSITY OF TANZANIA

An Introduction to Object-Oriented Programming with

1 p a g e 1 1. Syllabus of 3 rd Semester of B.Tech. Information Technology (Batch 2014 Onwards)

BELEN JESUIT PREPARATORY SCHOOL Computer Science Department COURSE DESCRIPTIONS. And OBJECTIVES

WORKSPACE WEB DEVELOPMENT & OUTSOURCING TRAINING CENTER

Graph/Network Visualization

Specialized Programme on Web Application Development using Open Source Tools

Heaps & Priority Queues in the C++ STL 2-3 Trees

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Transcription:

INTERNATIONAL EDITION Java Software Structures Designing and Using Data Structures FOURTH EDITION John Lewis Joseph Chase

This page is intentionally left blank.

Java Software Structures,International Edition Table of Contents Cover Preface Contents Credits Chapter 1: Introduction 1.1 Software Quality Correctness Reliability Robustness Usability Maintainability Reusability Portability Efficiency Quality Issues 1.2 Data Structures A Physical Example Containers as Objects Chapter 2: Analysis of Algorithms 2.1 Algorithm Efficiency 2.2 Growth Functions and Big-Oh Notation 2.3 Comparing Growth Functions 2.4 Determining Time Complexity Analyzing Loop Execution Nested Loops Method Calls Chapter 3: Introduction to Collections Stacks 3.1 Collections Abstract Data Types The Java Collections API 3.2 A Stack Collection 3.3 Crucial OO Concepts Inheritance and Polymorphism Generics 3.4 Using Stacks: Evaluating Postfix Expressions

Javadoc 3.5 Exceptions 3.6 A Stack ADT 3.7 Implementing a Stack: With Arrays Managing Capacity 3.8 The ArrayStack Class The Constructors The push Operation The pop Operation The peek Operation Other Operations The EmptyCollectionException Class Other Implementations Chapter 4: Linked Structures Stacks 4.1 References as Links 4.2 Managing Linked Lists Accessing Elements Inserting Nodes Deleting Nodes 4.3 Elements without Links Doubly Linked Lists 4.4 Stacks in the Java API 4.5 Using Stacks: Traversing a Maze 4.6 Implementing a Stack: With Links The LinkedStack Class The push Operation The pop Operation Other Operations Chapter 5: Queues 5.1 A Conceptual Queue 5.2 Queues in the Java API 5.3 Using Queues: Code Keys 5.4 Using Queues: Ticket Counter Simulation 5.5 A Queue ADT 5.6 A Linked Implementation of a Queue The enqueue Operation The dequeue Operation

Other Operations 5.7 Implementing Queues: With Arrays The enqueue Operation The dequeue Operation Other Operations 5.8 Double-Ended Queues (Deque) Chapter 6: Lists 6.1 A List Collection 6.2 Lists in the Java Collections API 6.3 Using Unordered Lists: Program of Study 6.4 Using Indexed Lists: Josephus 6.5 A List ADT Adding Elements to a List 6.6 Implementing Lists with Arrays The remove Operation The contains Operation The add Operation for an Ordered List Operations Particular to Unordered Lists The addafter Operation for an Unordered List 6.7 Implementing Lists with Links The remove Operation Chapter 7: Iterators 7.1 What's an Iterator? Other Iterator Issues 7.2 Using Iterators: Program of Study Revisited Printing Certain Courses Removing Courses 7.3 Implementing Iterators: With Arrays 7.4 Implementing Iterators: With Links Chapter 8: Recursion 8.1 Recursive Thinking Infinite Recursion Recursion in Math 8.2 Recursive Programming Recursion versus Iteration Direct versus Indirect Recursion

8.3 Using Recursion Traversing a Maze The Towers of Hanoi 8.4 Analyzing Recursive Algorithms Chapter 9: Searching and Sorting 9.1 Searching Static Methods Generic Methods Linear Search Binary Search Comparing Search Algorithms 9.2 Sorting Selection Sort Insertion Sort Bubble Sort Quick Sort Merge Sort 9.3 Radix Sort Chapter 10:Trees 10.1 Trees Tree Classifications 10.2 Strategies for Implementing Trees Computational Strategy for Array Implementation of Trees Simulated Link Strategy for Array Implementation of Trees Analysis of Trees 10.3 Tree Traversals Preorder Traversal Inorder Traversal Postorder Traversal Level-Order Traversal 10.4 A Binary Tree ADT 10.5 Using Binary Trees: Expression Trees 10.6 A Back Pain Analyzer 10.7 Implementing Binary Trees with Links The find Method The iteratorinorder Method

Chapter 11: Binary Search Trees 11.1 A Binary Search Tree 11.2 Implementing Binary Search Trees: With Links The addelement Operation The removeelement Operation The removealloccurrences Operation The removemin Operation Implementing Binary Search Trees: With Arrays 11.3 Using Binary Search Trees: Implementing Ordered Lists Analysis of the BinarySearchTreeList Implementation 11.4 Balanced Binary Search Trees Right Rotation Left Rotation Rightleft Rotation Leftright Rotation 11.5 Implementing BSTs: AVLTrees Right Rotation in an AVLTree Left Rotation in an AVLTree Rightleft Rotation in an AVLTree Leftright Rotation in an AVLTree 11.6 Implementing BSTs: Red/Black Trees Insertion into a Red/Black Tree Element Removal from a Red/Black Tree Chapter 12: Heaps and Priority Queues 12.1 A Heap The addelement Operation The removemin Operation The findmin Operation 12.2 Using Heaps: Priority Queues 12.3 Implementing Heaps: With Links The addelement Operation The removemin Operation The findmin Operation 12.4 Implementing Heaps: With Arrays The addelement Operation The removemin Operation The findmin Operation 12.5 Using Heaps: Heap Sort

Chapter 13: Sets and Maps 13.1 Set and Map Collections 13.2 Sets and Maps in the Java API 13.3 Using Sets: Domain Blocker 13.4 Using Maps: Product Sales 13.5 Using Maps: User Management 13.6 Implementing Sets and Maps Using Trees 13.7 Implementing Sets and Maps Using Hashing Chapter 14: Multi-Way Search Trees 14.1 Combining Tree Concepts 14.2 2-3 Trees Inserting Elements into a 2-3 Tree Removing Elements from a 2-3 Tree 14.3 2-4 Trees 14.4 B-Trees B*-Trees B+-Trees Analysis of B-Trees 14.5 Implementation Strategies for B-Trees Chapter 15: Graphs 15.1 Undirected Graphs 15.2 Directed Graphs 15.3 Networks 15.4 Common Graph Algorithms Traversals Testing for Connectivity Minimum Spanning Trees Determining the Shortest Path 15.5 Strategies for Implementing Graphs Adjacency Lists Adjacency Matrices 15.6 Implementing Undirected Graphs with an Adjacency Matrix The addedge Method The addvertex Method The expandcapacity Method Other Methods

Appendix A: UML The Unified Modeling Language (UML) UML Class Diagrams UML Relationships Appendix B: Object-Oriented Design B.1 Overview of Object Orientation B.2 Using Objects Abstraction Creating Objects B.3 Class Libraries and Packages The import Declaration B.4 State and Behavior B.5 Classes Instance Data B.6 Encapsulation Visibility Modifiers Local Data B.7 Constructors B.8 Method Overloading B.9 References Revisited The Null Reference The this Reference Aliases Garbage Collection Passing Objects as Parameters B.10 The static Modifier Static Variables Static Methods B.11 Wrapper Classes B.12 Interfaces The Comparable Interface B.13 Inheritance Derived Classes The protected Modifier The super Reference Overriding Methods B.14 Class Hierarchies The Object Class Table of Contents

Abstract Classes Interface Hierarchies B.15 Polymorphism References and Class Hierarchies Polymorphism via Inheritance Polymorphism via Interfaces B.16 Exceptions Exception Messages The try Statement Exception Propagation The Exception Class Hierarchy Appendix C: Java Graphics C.1 Pixels and Coordinates C.2 Representing Color C.3 Drawing Shapes C.4 Polygons and Polylines The Polygon Class Appendix D: Graphical User Interfaces D.1 GUI Elements Frames and Panels Buttons and Action Events Determining Event Sources D.2 More Components Text Fields Check Boxes Radio Buttons Sliders Combo Boxes Timers D.3 Layout Managers Flow Layout Border Layout Grid Layout Box Layout Containment Hierarchies D.4 Mouse and Key Events Mouse Events Key Events Extending Adapter Classes

D.5 Dialog Boxes File Choosers Color Choosers D.6 Some Important Details Borders Tool Tips and Mnemonics D.7 GUI Design Appendix E: Hashing E.1 Hashing E.2 Hashing Functions The Division Method The Folding Method The Mid-Square Method The Radix Transformation Method The Digit Analysis Method The Length-Dependent Method Hashing Functions in the Java Language E.3 Resolving Collisions Chaining Open Addressing E.4 Deleting Elements from a Hash Table Deleting from a Chained Implementation Deleting from an Open Addressing Implementation E.5 Hash Tables in the Java Collections API The Hashtable Class The HashSet Class The HashMap Class The IdentityHashMap Class The WeakHashMap Class LinkedHashSet and LinkedHashMap Appendix F: Regular Expressions Index