E-Books: Data Structures and Algorithms in Java

By Mitchell Waite

This introduction tells you briefly
  • What this book is about
  • Why it's different
  • Who might want to read it
  • What you need to know before you read it
  • The software and equipment you need to use it
  • How this book is organized

What This Book Is About

This book is about data structures and algorithms as used in computer programming. Data structures are ways in which data is arranged in your computer's memory (or stored on disk). Algorithms are the procedures a software program uses to manipulate the data in these structures. Almost every computer program, even a simple one, uses data structures and algorithms. For example, consider a program that prints address labels. The program might use an array containing the addresses to be printed, and a simple for loop to step through the array, printing each address.

The array in this example is a data structure, and the for loop, used for sequential access to the array, executes a simple algorithm. For uncomplicated programs with small amounts of data, such a simple approach might be all you need. However, for programs that handle even moderately large amounts of data, or that solve problems that are slightly out of the ordinary, more sophisticated techniques are necessary. Simply knowing the syntax of a computer language such as Java or C++ isn't enough.

This book is about what you need to know after you've learned a programming language.

The material we cover here is typically taught in colleges and universities as a second-year course in computer science, after a student has mastered the fundamentals of programming.

W hat's Different About This Book

There are dozens of books on data structures and algorithms. What's different about this one? Three things:
  • Our primary goal in writing this book is to make the topics we cover easy to understand.
  • Demonstration programs called Workshop applets bring to life the topics we cover, showing you step by step, with "moving pictures," how data structures and algorithms work.
  • The example code is written in Java, which is easier to understand than C, C++, or Pascal, the languages traditionally used to demonstrate computer science topics.
Let's look at these features in more detail.

Easy to Understand

Typical computer science textbooks are full of theory, mathematical formulas, and abstruse examples of computer code. This book, on the other hand, concentrates on simple explanations of techniques that can be applied to real-world problems. We avoid complex proofs and heavy math. There are lots of figures to augment the text.

Many books on data structures and algorithms include considerable material on sofware engineering. Software engineering is a body of study concerned with designing and implementing large and complex software projects.

However, it's our belief that data structures and algorithms are complicated enough without involving this additional discipline, so we have deliberately de-emphasized software engineering in this book. (We'll discuss the relationship of data structures and algorithms to software engineering in Chapter 1," Overview.") Of course we do use an object-oriented approach, and we discuss various aspects of object-oriented design as we go along, including a mini-tutorial on OOP in Chapter 1. Our primary emphasis, however, is on the data structures and algorithms themselves.

Workshop Applets

The CD-ROM that accompanies this book includes demonstration programs, in the form of Java applets, that cover the topics we discuss. These applets, which we call Workshop applets, will run on many computer systems, appletviewers, and Web browsers. (See the readme file on the CD-ROM for more details on compatibility.) The Workshop applets create graphic images that show you in "slow motion" how an algorithm works.

For example, in one Workshop applet, each time you push a button, a bar chart shows you one step in the process of sorting the bars into ascending order. The values of variables used in the sorting algorithm are also shown, so you can see exactly how the computer code works when executing the algorithm. Text displayed in the picture explains what's happening.

Another applet models a binary tree. Arrows move up and down the tree, so you can follow the steps involved in inserting or deleting a node from the tree. There are more than 20 Workshop applets—at least one for every major topic in the book.

These Workshop applets make it far more obvious what a data structure really looks like, or what an algorithm is supposed to do, than a text description ever could. Of course, we provide a text description as well. The combination of Workshop applets, clear text, and illustrations should make things easy.

These Workshop applets are standalone graphics-based programs. You can use them as a learning tool that augments the material in the book. (Note that they're not the same as the example code found in the text of the book, which we'll discuss next.)

Java Example Code

The Java language is easier to understand (and write) than languages such as C and C++. The biggest reason for this is that Java doesn't use pointers. Although it surprises some people, pointers aren't necessary for the creation of complex data structures and algorithms. In fact, eliminating pointers makes such code not only easier to write and to understand, but more secure and less prone to errors as well.

Java is a modern object-oriented language, which means we can use an object-oriented approach for the programming examples. This is important, because object-oriented programming (OOP) offers compelling advantages over the old-fashioned procedural approach, and is quickly supplanting it for serious program development. Don't be alarmed if you aren't familiar with OOP. It's not that hard to understand, especially in a pointer-free environment such as Java. We'll explain the basics of OOP in Chapter 1.

For Download:

Sponsored Links

E-Books

Ubuntu
Ubuntu Hacks Tips and Tools for Exploring Using and Tuning Linux
Ubuntu®Linux® TOOLBOX
Beginning Ubuntu LTS Server Administration
ASP.NET
Foundations of ASP.NET AJAX
AJAX
Foundations of ASP.NET AJAX
Solaris
System Administration Guide, Volume I
UNIX
UNIX Programmer's Manual
UNIX® Network Programming Volume 1
SunSystems UNIX Oracle Platforms Manual
System Administration Guide, Volume I
BSD UNIX® TOOLBOX
BSD
BSD UNIX® TOOLBOX
SAP
SAP Basis Installation on UNIX: Oracle Database
C
Sams Teach Yourself C in 24 Hours
Apache
Beginning PHP5, Apache, and MySQL® Web Development
Apache HTTP Server Configuration
Professional LAMP
The Definitive Guide to Apache mod_rewrite
Architecture
Outstanding Wood Buildings
C++
The Visual C++ Language for .NET 3.5
Advanced CORBA® Programming with C++
C#
E-Books: Step By Step Microsoft Visual C# 2005
Step By Step Microsoft Visual C# 2008
C# Yellow Book
Essentials of Object-Oriented Programming
Acclerated C# 2008
Hack
The Oracle Hacker's Handbook
Hacker Highschool: Complete Table of Contents and Glossary
Hacker Highschool: Lesson 1 Being a Hacker
Hacker Highschool: Lesson 2 Basic Commands in Linux and windows
Hacker Highschool: Lesson 3 Ports and Protocols
Hacker Highschool: Lesson 4 Services and Connections
Hacker Highschool: Lesson 5 System Identification
Hacker Highschool: Lesson 6 Malware
Hacker Highschool: Lesson 7 Attack Analysis
Hacker Highschool: Lesson 8 Digital Forensics
Hacker Highschool: Lesson 9 E-mail Security
Hacker Highschool: Lesson 10 Web Security and Privacy
Hacker Highschool : Lesson 11 Password
Hacker Highschool : Lesson 12 Internet legalities and ethics
Hack Attacks Revealed
Html
The Essential Guide to CSS and HTML Web Design
HTML Css in Pictures
Beginning HTML with CSS and XHTML
HTML, DHTML and JavaScript
HTML 4 for Dummies
J2EE
J2EE Developer's Handbook
Java
Java Data Access - JDBC, JNDI, and JAXP
Java™ After Hours: 10 Projects You'll Never Do at Work
Data Structures and Algorithms in Java
Data Structures & Algorithms in Java
Professional Hibernate
Core Servlets and JavaServer Pages
JavaScript
JavaFX™ Script
The Book of JavaScript 2nd Edition
Making Use of JavaScript
JavaScript Programming For the Absolut Beginner
Simply JavaScript
Pro JavaScript Techniques
Linux
Linux Security
Ubuntu Hacks Tips and Tools for Exploring Using and Tuning Linux
Ubuntu®Linux® TOOLBOX
Beginning Ubuntu LTS Server Administration
Professional LAMP
LINUX System Programming
MatLab
Introduction to Simulink® with Engineering Applications
Oracle
The Oracle Hacker's Handbook
SunSystems UNIX Oracle Platforms Manual
Essential Unix (and Linux) for the Oracle DBA
Oracle Database 10g PL/SQL Programming
Migrating Forms Applications from Forms 6i
Oracle9i: Advanced SQL
Advanced SQL Functions in Oracle 10g
Expert Oracle Database 10g Administration
Expert Oracle Database Architecture
Oracle Database 11g PL/SQL Programming
Pascal
Turbo Pascal 5.5 Object Oriented Programming Guide
Object Pascal Language Guide
PHP
Pro PHP XML and Web Services
Build Your Own Database Driven Website using PHP & MySQL
Beginning PHP5, Apache, and MySQL® Web Development
SQL
Microsoft SQL Server 2008 A Beginner's Guide
Build Your Own Database Driven Website using PHP & MySQL
Beginning PHP5, Apache, and MySQL® Web Development
Professional Hibernate
Professional LAMP
Beginning SQL
Microsoft® SQL Server™ 2005 Developer’s Guide
Oracle Database 10g PL/SQL Programming
Advanced SQL Functions in Oracle 10g
Professional SQL Server 2000 Database Design
Microsoft SQL Server 2005 for Dummies
Visual Basic
Step By Step Microsoft Visual Basic 2008
Visual Basic 6
Visual Basic for Applications Programming Excel
Learn Visual Basic 6.0
Database Access with Visual Basic Jeffrey Mcmanus
Visual Basic 6 Black Book
Web
11 Steps to create a successful Web Site
Pro PHP XML and Web Services
Beginning PHP5, Apache, and MySQL® Web Development
Wireless
Webmaster’s Guide to the Wireless Internet
Wireless Communications and Networking
Certified Wireless Network Administrator
Certified Wireless Security Professional
Facebook
Building Facebook™ Applications
Google
Building Your Business with Google
Network
Wireless Communications and Networking
Networking with Microsoft Windows Vista
Absolute Beginner's Guide to Networking, Fourth Edition
NetBackup
VERITAS NetBackup™ 6.0 Installation Guide
VERITAS NetBackupTM 6.0 System Administrator’s Guide
VERITAS NetBackup™ 6.0 for Oracle System Administrator’s Guide
Skype
Skype For Dummies
Microsoft Office
Step By Step: Microsoft Access 2003
XOOPS
Building Websites with XOOPS A step-by-step Tutorial
Windows
Microsoft Windows Group Policy Guide
Microsoft Windows Registry Guide
Windows Vista
Networking with Microsoft Windows Vista
Internet
Microsoft Internet Security and Acceleration (ISA) Server 2004 Unleashed
SEO
Get to the Top on Google

Yahoo Tools

YTK Pro 1.5.0.494
Yah Earth Version 4
Yhook 542
Ymsgr 9.0.0.1912
Yahoo ACE V1.0.0.569
Room Destroy V 59 Updated by Strange Shahn
Room Domination 8.0
Yahaven Version 2.5.9
Y!safe Beta Yahoo Chat Client
Pinoy Room Conquer V9
Y!hook 5.26 Chat Client
Pinoy Room Conquer V8
Shit Party Yahoo
Pinoy Room Conquer v7 Yahoo Client
New Chat Killer V30
Y-Lions Multi Room Message & Multi Room Pm Spammer
YahooACE V1.0.0.569 By Brian Meeks
New Yahelite for Download
Super Spy v28
Free link download Chat Supremecy V4.4.0
YTK Pro
Mencuri Webcam dengan Yintai
No5
Pidgin multi-protocol Instant Messaging
Konfigurasi Pidgin untuk Room Yahoo Messenger
Install Pidgin 2.3.0
Easy Chat Room Yahoo with yahelite
Ytk Pro
Download YTK Pro
yam
Download Yam
Room Domination 7.0
Chat Killer V24
Room Destroy
Elite Chat
Pidgin 2.4.0
Chat Killer V29
Chat Killer V27
Chat Killer V28
Yintai
Scan Yahoo Id Name Scanner By Slayer
Fast N Ez Scanner
Extreme Name Scanner
Name Scan By Killer
Crack Id Yahoo Messenger CrackerDotNet Beta
Boon Dogs Kleptomaniac
Bulldozer 1.3
Consumption-1.02
Viper unleashed
CrackHouse Vengeance v1.0
Illy Ownage
Stfu & Crack By Hypn
Underworld Cracker
Vipra Ncc V2.0
Vipra Ncc V5.0
Dragonz WaR Cracker
Proxy Master V3.0 By WALT
Proxy Grab V.06
Y! Buddy Controller
Proxified
Cap Size Id Scanner
Ncc The Bitch V1.0.1
Viet ncc v2.0 Cracker Yahoo Id
Confirmed Cracker
Menghapus id yahoo messenger
Y Server Control V3 For Crack Yahoo Id
Kriptonite v3 for Download Crack Id Yahoo messenger
Free Download EnrangedX
Free Download scream 3.0
Y! Jacker Proxy Cracker
Free Download Heetseeker
Create Id Boot YCC Yahoo Bot Maker
Yahoo Swat Team id Maker
The Illusionist Yahoo Id Maker
Fast ID Maker 10
Y Lions Bots Maker
Viprasys ID Creator
CP BotMaker Reborn
I Robot Creation
Ascii id maker
YCC Bot Maker V1.2
Fast ID Maker 8.0
Puddys-World Botmaker v 4+4.1
Create Id Yahoo Revoxlu3s Big MakeR Yahoo Id
BT internet maker by Kadmiwe
The Enigma 1.6 Yahoo Id Maker
Tutorial Create id Yahoo @kimo.com
New Create Yahoo id@rocketmail.com
Free Download EgY Booter
Free All Star List Generator
id@yahoo.cn
id@btinternet.com
Id@y7mail.com
Btinternet Maker
Proxy Multi Socks Scanner
Port Spliter
Spider HTTP Proxys Get V1.0
6 Sic 6 Range Scanner
Zdc socks scaner
Proxy Switcher Pro
Proxy
Proxy Pro by Arachnid-X
Proxy Grabber 5.21
Leech V3 Update and Fixed by _PLaNeT___
Heaven Socks Scanner v1.0
Proxy Grabber 5.21
Proxy Finder v2.0
Proxyfire Master Suite FREE 1.22
Yahoo ! Club - Cracker
Anonymous Friend v2.9
Palestine Proxy Graber
Voice Nepal Yahoo locker Mic
Y! Messy Voice v1
Super Bike Mike Lock v1.4
Power Mic Yahaven
Power Mic Yahelite
Power Mic For Yazak
Win Amp Status
MnT Magnum Voice 2.0
The Sniper 3.0 by FLZ
Donkey Punch Y!Beep
The Sniper 3.0
Dark VOx
iTunes Status for YIM!9
WinAmp Status Changer
Download Untouchable Vox 1.2
Ghost Room
Bomb Vox2
Yahvox Domination V3
Super Mic Locker
Vc guard Beta
Yah Room Vox By RMH
Evil Voice for Room Yahoo
Soft Vox V6 Good Voice Domination on Yahoo Room
Download Voice Domination Mass Iggy 3.0
Webcam Webcam attack V 1.0
Web Cam Attack
Cam Studio
1st Screen Recorder
Oripa Yahoo Web Cam Recorder
Unlocker Id Yahoo Unlocker Id Yahoo
Delete Yahoo Id Yahoo Terminate Yahoo Id / Delete Yahoo id
Lock id Locker Y ID 4.0
Super ID Locker v2.0
7778QU-KO Lock Yahoo Id
Account Locker V3.0
Lock The Homo
G.T.S Go To Sleep Id Locker
Shit Locks
Secret Account Locker Beta
Y! Spy Account Locker
Hackahoo Locka Focka v1.3
Y! Multi Locker by Killer Keygen
Dcs Paradise Dead Lock
Y! Spy Account Locker
Lamer Locker V2 Lock Yahoo Id
Shit Locks to Lock Yahoo Id
Yaho0o's Super Account locker
ID Locker to Lock Yahoo Id
Spammer For Simple PM Spammer For Yahoo Messenger
Pm Spammer WD Pm Spammer
Yahoo PM Spammer Chambers Owns Mass
Server Yahoo Server Scan Elite V.1 and List Update Server
Tools Y Fighter pm Spammer
Hellz Pass Changer
Dark Check v1.0
Yahoo Messenger Multi Patch
IP Force
Invisible Yahoo Messenger
Chambers Multi room Name Grabber V1.2
FX RooM LaGGeR V1.0
Check Victim Location With IP
Matrix Annoyer
I Killer by Alikhoub
Nice Status
W@ Yahoo Multi Tab V1
Multi Yahoo
Client Detection
Prixi Status Changer V1.0
Alien-warez Y!M Multi Maker v 1.0
Yahoo UnlockV1.2
x-netstat-professionalv55-download
Voodo Bot Tester v.1
Register OCX and DLL Tool
ViCiOuSPassGen2.0
Bluriee-Password Generator
Scanneration 2.0
Scanneration
Y-S ID Leecher 3.0
Web Browser Download Mozilla Firefox 3
Download SeaMonkey Browser
Apple - Safari Browser for Windows

Booter

BlackWidows Dog Bytes boot Yahoo
My Final Card boot for Yahoo
Y!-ir=evlis Booter boot for Yahoo
Tigerus Vi Boot For Yahoo
ECT V 2.0 Boot For Yahoo
Second Boot Exploit boot for Yahoo
Wanna Be Bot all boot for yahoo
Room Eviction Nice Room spamer
Muridnakal SIlent Super Booter V2
Ytunnel smasher boot for tunnel
The Therminator V2 boot for yahoo
S3rial Killer Reborn V1 boot Yahoo
Manuel Ownz by S3rial Kllers boot for Yahoo
Caution boot for yahoo or chat client yahoo
S3rial Final Example boot for yahoo
Yah Mart Total Overload boot for yahoo or chat client
Red Hoot Yahoo Boot or chat client yahoo
Vamp Angel Client Killer boot for yahoo or chat client
Elite V1.0 boot for Yahoo messenger or Chat client
God Of Boot Warr Version 1.0.0 boot for Yahoo
The green hornet Boot for Yahoo
Pm Nikker V1 Boot for Yahoo
Counter attack v10 Boot for Yahoo
Free download 30000 Destroyer Packets
Download Quick Kill 5.0.5 Boot Yahoo
Twisted Fury v2 Boot For Yahoo
Buffer OverLoad V3 Boot For Yahoo
Download Buffer OverLoad V3 boot yahoo
Knobb Muridnakal Freeze.V1 Boot Yahoo
The Booter boot for Yahoo and chat Client
DarkStar Multy Hitter V2 boot Yahoo
Download Kch Bites Back V1 boot for yahoo
Download Floodgate Boot for Yahoo
Download Dark Start Multy Hitter V2
Download Boot War yahoo Messenger
Download Crooked Convict Boot Yahoo
Download Operation nb V2
Free Haze Reborn boot
RAID 5000 Boot Login for client or Yahoo messenger
Boot Red Rover boot for Yahoo messenger
PM Pandemonium boot for Yahoo or chat client yahoo
Awakening Boot yahoo messenger
Y-Soft Super DC 1.0 multi bots login
Pick n Mix Boot fo Yahoo
Remi`s Shooting Machine Boot for Yahoo
Master Dc Boot for Yahoo
Saints Revenge Boot for Yahoo
Anarkis Boot for Yahoo
5 Stars Boot For Yahoo
Others Boot >>>>