Skip to Content
Data Structures and Algorithms in C++, Second Edition
book

Data Structures and Algorithms in C++, Second Edition

by Michael T. Goodrich, Roberto Tamassia, David M. Mount
February 2011
Intermediate to advanced
736 pages
19h 35m
English
Wiley
Content preview from Data Structures and Algorithms in C++, Second Edition

Chapter 7. Trees

Trees

Contents

7.1 General Trees

268

7.1.1 Tree Definitions and Properties

269

7.1.2 Tree Functions

272

7.1.3 A C++ Tree Interface

273

7.1.4 A Linked Structure for General Trees

274

7.2 Tree Traversal Algorithms

275

7.2.1 Depth and Height

275

7.2.2 Preorder Traversal

278

7.2.3 Postorder Traversal

281

7.3 Binary Trees

284

7.3.1 The Binary Tree ADT

285

7.3.2 A C++ Binary Tree Interface

286

7.3.3 Properties of Binary Trees

287

7.3.4 A Linked Structure for Binary Trees

289

7.3.5 A Vector-Based Structure for Binary Trees

295

7.3.6 Traversals of a Binary Tree

297

7.3.7 The Template Function Pattern

303

7.3.8 Representing General Trees with Binary Trees

309

7.4 Exercises

310

General Trees

Productivity experts say that breakthroughs come by thinking "nonlinearly." In this chapter, we discuss one of the most important nonlinear data structures in computing—trees. Tree structures are indeed a breakthrough in data organization, for they allow us to implement a host of algorithms much faster than when using linear data structures, such as lists, vectors, and sequences. Trees also provide a natural organization for data, and consequently have become ubiquitous structures in file systems, graphical user interfaces, databases, Web sites, and other computer systems.

It is not always clear what productivity experts mean by "nonlinear" thinking, but when we say that trees are "nonlinear," we are referring to an organizational relationship ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Data Structures and Algorithms in Java, 2nd Edition

Data Structures and Algorithms in Java, 2nd Edition

Robert Lafore
Data Structures and Algorithms in Java, 6th Edition

Data Structures and Algorithms in Java, 6th Edition

Michael T. Goodrich, Roberto Tamassia
C++ Software Design

C++ Software Design

Klaus Iglberger
Hands-On Data Structures and Algorithms with Python - Second Edition

Hands-On Data Structures and Algorithms with Python - Second Edition

Dr. Basant Agarwal, Benjamin Baka, David Julian

Publisher Resources

ISBN: 9780470383278Purchase book