The Modula-2 Software Component Library: Volume 3


This book is the third and final volume in a series entitled "The Modula-2 Software Component Library." C. Lins' collection of reusable standard software components could be the basis for every programmer's software project in Modula-2. Components that are implementations of commonly used data structures are presented, along with a description of their functionality and efficiency. Moreover, the books provide the background necessary to tailor these components to the specific needs of any Modula-2 environment. ...

See more details below
Paperback (Softcover reprint of the original 1st ed. 1989)
$111.91 price
(Save 5%)$119.00 List Price
Other sellers (Paperback)
  • All (4) from $79.70   
  • New (3) from $79.70   
  • Used (1) from $151.59   
Sending request ...


This book is the third and final volume in a series entitled "The Modula-2 Software Component Library." C. Lins' collection of reusable standard software components could be the basis for every programmer's software project in Modula-2. Components that are implementations of commonly used data structures are presented, along with a description of their functionality and efficiency. Moreover, the books provide the background necessary to tailor these components to the specific needs of any Modula-2 environment. For Modula-2 programmers, this series of books could prove as useful and indispensible as the original language reference by Niklaus Wirth. This third volume discusses the concepts of trees and graphs, shows their specifications, and provides implementations for various forms of trees and graphs.

Read More Show Less

Editorial Reviews

Third volume in the series discusses the concepts of trees and graphs, shows their specifications, and provides implementations for various forms of trees and graphs. No index. Annotation c. Book News, Inc., Portland, OR (
Read More Show Less

Product Details

  • ISBN-13: 9781468463880
  • Publisher: Springer New York
  • Publication date: 3/1/2012
  • Series: Springer Compass International Series
  • Edition description: Softcover reprint of the original 1st ed. 1989
  • Edition number: 1
  • Pages: 450
  • Product dimensions: 6.14 (w) x 9.21 (h) x 0.95 (d)

Table of Contents

0 Introduction to Volume 3.- 1 — Preliminaries.- 1 Specification.- 1.1 Specification of Procedure Abstractions.- 1.1.1 Header Section.- 1.1.2 Requires Section.- 1.1.3 Where Section.- 1.1.4 Modifies Section.- 1.1.5 Effects Section.- 1.1.6 Signals Section.- 1.2 Specification of Data Abstractions.- 1.3 Special Symbols.- References.- 2 Module Guide.- 2.1 Purpose.- 2.2 Characterization of Modules.- 2.3 Module Guide Organization.- 2.4 Binary Trees.- 2.4.1 Tree Types.- 2.4.2 AVL Tree — Sequential Unbounded Managed Iterator.- 2.4.3 BB Tree — Sequential Unbounded Managed Iterator.- 2.4.4 Binary Tree — Sequential Bounded Managed Iterator.- 2.4.5 Binary Tree — Sequential Unbounded Managed Iterator.- 2.4.6 IPB Tree — Sequential Unbounded Managed Iterator.- 2.5 Graphs.- 2.5.1 Graph Types.- 2.5.2 Graph — Directed Sequential Bounded Managed Iterator.- 2.5.3 Graph — Directed Sequential Unbounded Managed Iterator.- 2.5.4 Graph — Undirected Sequential Bounded Managed Iterator.- 2.5.5 Graph — Undirected Sequential Unbounded Managed Iterator.- 2.6 Graph Utilities.- 2.7 Module Names.- References.- 2 — Trees.- 3 Tree Abstraction.- 3.1 Concepts and Definitions.- 3.1.1 Basic Tree Definitions.- 3.1.2 Attributes of Nodes.- 3.1.3 Relationships Between Nodes.- 3.1.4 Attributes of Trees.- 3.1.5 Kinds of Trees.- 3.1.6 Tree Traversals.- General Tree Traversals.- Binary Tree Traversals.- 3.1.7 Forests.- 3.2 Applications and Uses.- 3.3 Binary Search Tree Operations.- 3.3.1 Constructors.- Create.- Destroy.- Clear.- Assign.- Insert.- MakeTree.- Remove.- 3.3.2 Selectors.- IsDefined.- IsEmpty.- IsEqual.- ExtentOf.- IsPresent.- 3.3.3 Passive Iterators.- Preorder.- Inorder.- Postorder.- 3.3.4 Active Iterators.- RootOf.- LeftOf.- RightOf.- IsNull.- KeyOf.- DataOf.- 3.4 Balanced Binary Trees.- 3.4.1 Height-Balanced (AVL) Trees.- 3.4.2 Weight-Balanced (BB) Trees.- 3.4.3 Path-Balanced (IPB) Trees.- 3.4.4 Rotations.- 3.5 Tree Exceptions.- 3.5.1 Initialization Failed.- 3.5.2 Overflow.- 3.5.3 Tree is Null.- 3.5.4 Type Error.- 3.5.5 Undefined.- 3.6 Summary.- 3.6.1 Operations Summary.- 3.6.2 Exceptions Summary.- References.- 4 The Unbounded Binary Tree.- 4.1 Tree Types Module.- 4.1.1 Tree Operations.- 4.1.2 Tree Exceptions.- 4.1.3 Tree Types and Procedure Types.- 4.2 Unbounded Binary Search Tree Interface.- 4.2.1 Type Declarations.- 4.2.2 Exception Handling.- 4.2.3 Constructors.- 4.2.4 Selectors.- 4.2.5 Passive Iterators.- 4.2.6 Active Iterators.- 4.3 Unbounded Binary Search Tree Implementation.- 4.3.1 Internal Representation.- 4.3.2 Exception Handling.- 4.3.3 Local Operations.- 4.3.4 Constructors.- 4.3.5 Selectors.- 4.3.6 Passive Iterators.- 4.3.7 Active Iterators.- 4.3.8 Module Initialization.- 4.4 Unbounded Binary Search Tree Utilities Interface.- 4.4.1 Utility Selectors.- 4.4.2 Debugging Iterators.- 4.5 Unbounded Binary Search Tree Utilities Implementation.- 4.5.1 Utility Selectors.- 4.5.2 Debugging Iterators.- References.- 5. The Bounded Binary Tree.- 5.1 Bounded Binary Search Tree Interface.- 5.1.1 Type Declarations.- 5.1.2 Exception Handling.- 5.1.3 Constructors.- 5.1.4 Selectors.- 5.1.5 Passive Iterators.- 5.1.6 Active Iterators.- 5.2 Bounded Binary Search Tree Implementation.- 5.2.1 Internal Representation.- 5.2.2 Exception Handling.- 5.2.3 Free List Management.- 5.2.4 Local Operations.- 5.2.5 Constructors.- 5.2.6 Selectors.- 5.2.7 Passive Iterators.- 5.2.8 Active Iterators.- 5.2.9 Module Initialization.- References.- 6 The Unbounded AVL Tree.- 6.1 Unbounded AVL Tree Interface.- 6.1.1 Type Declarations.- 6.1.2 Exception Handling.- 6.1.3 Constructors.- 6.1.4 Selectors.- 6.1.5 Passive Iterators.- 6.1.6 Active Iterators.- 6.2 Unbounded AVL Tree Implementation.- 6.2.1 Internal Representation.- 6.2.2 Exception Handling.- 6.2.3 Local Operations.- 6.2.4 Constructors.- 6.2.5 Selectors.- 6.2.6 Passive Iterators.- 6.2.7 Active Iterators.- 6.2.8 Module Initialization.- 6.3 Unbounded AVL Tree Utilities Interface.- 6.3.1 Utility Selectors.- 6.3.2 Debugging Iterators.- 6.4 Unbounded AVL Tree Utilities Implementation.- 6.4.1 Utility Selectors.- 6.4.2 Debugging Iterators.- References.- 7 The Unbounded BB Tree.- 7.1 Unbounded BB Tree Interface.- 7.1.1 Type Declarations.- 7.1.2 Exception Handling.- 7.1.3 Constructors.- 7.1.4 Selectors.- 7.1.5 Passive Iterators.- 7.1.6 Active Iterators.- 7.2 Unbounded BB Tree Implementation.- 7.2.1 Internal Representation.- 7.2.2 Exception Handling.- 7.2.3 Local Operations.- 7.2.4 Constructors.- 7.2.5 Selectors.- 7.2.6 Passive Iterators.- 7.2.7 Active Iterators.- 7.2.8 Module Initialization.- References.- 8 The Unbounded k-Balanced Binary Tree.- 8.1 Unbounded k-Balanced Binary Tree Interface.- 8.1.1 Type Declarations.- 8.1.2 Exception Handling.- 8.1.3 Constructors.- 8.1.4 Selectors.- 8.1.5 Passive Iterators.- 8.1.6 Active Iterators.- 8.2 Unbounded k-Balanced Binary Tree Implementation.- 8.2.1 Internal Representation.- 8.2.2 Exception Handling.- 8.2.3 Local Operations.- 8.2.4 Constructors.- 8.2.5 Selectors.- 8.2.6 Passive Iterators.- 8.2.7 Active Iterators.- 8.2.8 Module Initialization.- 8.3 Unbounded k-Balanced Binary Tree Utilities Interface.- 8.3.1 Utility Selectors.- 8.3.2 Debugging Iterators.- 8.4 Unbounded k-Balanced Binary Tree Utilities Implementation.- 8.4.1 Utility Selectors.- 8.4.2 Debugging Iterators.- References.- 3 Graphs.- 9 Graph Abstraction.- 9.1 Concepts and Definitions.- 9.1.1 Directed Graphs.- 9.1.2 Undirected Graphs.- 9.1.3 Labeled and Weighted Graphs.- 9.2 Applications and Uses.- 9.3 Directed Graph Specifications.- 9.3.1 Directed Graph Types.- 9.3.2 Directed Graph Constructors.- Create.- Destroy.- Clear.- Assign.- Insert.- Remove.- SetLabel.- Link.- Unlink.- SetAttribute.- 9.3.3 Directed Graph Selectors.- IsDefined.- IsEmpty.- OrderOf.- SizeOf.- OutDegree.- InDegree.- LabelOf.- IsVertex.- GraphOf.- IsEdge.- AttributeOf.- InitialOf.- FinalOf.- 9.3.4 Directed Graph Passive Iterators.- Traverse Vertices.- TraverseEdges.- Iterate.- LoopVertices.- LoopEdges.- Looplterate.- 9.3.5 Directed Graph Active Iterators.- FirstVertex.- NextVertex.- FirstEdge.- NextVertex.- 9.4 Undirected Graph Specifications.- 9.4.1 Undirected Graph Constructors.- Remove.- Link.- 9.4.2 Undirected Graph Selectors.- DegreeOf.- FirstOf.- SecondOf.- IncidentOn.- 9.4.3 Undirected Graph Passive Iterators.- 9.5 Graph Exceptions.- 9.5.1 EdgeIsNull.- 9.5.2 EdgeNotInGraph.- 9.5.3 Initialization Failed.- 9.5.4 Overflow.- 9.5.5 Undefined.- 9.5.6 VertexIsNull.- 9.5.7 VertexNotInGraph.- 9.6 Graph Utilities.- 9.6.1 BreadthFirstSearch.- 9.6.2 DepthFirstSearch.- 9.6.3 HasSelfLoops.- 9.6.4 IsIsolated.- 9.6.5 IsReachable.- 9.6.6 IsTerminal.- 9.6.7 MaxDegree.- 9.6.7 MinDegree.- 9.7 Summary.- 9.7.1 Directed Graph Operations Summary.- 9.7.2 Directed Graph Exceptions Summary.- 9.7.3 Undirected Graph Operations Summary.- 9.7.4 Undirected Graph Exceptions Summary.- 9.7.5 Graph Utility Operations Summary.- 9.7.6 Graph Utility Exceptions Summary.- References.- 10 The Unbounded Directed Graph.- 10.1 Graph Types Interface.- 10.2 Unbounded Directed Graph Interface.- 10.2.1 Type Declarations.- 10.2.2 Exception Handling.- 10.2.3 Graph Constructors.- 10.2.4 Vertex Constructors.- 10.2.5 Edge Constructors.- 10.2.6 Graph Selectors.- 10.2.7 Vertex Selectors.- 10.2.8 Edge Selectors.- 10.2.9 Passive Iterators.- 10.2.10 Active Iterators.- 10.3 Unbounded Directed Graph Implementation.- 10.3.1 Internal Representation.- 10.3.2 Exception Handling.- 10.3.3 Local Routines.- 10.3.4 Graph Constructors.- 10.3.5 Vertex Constructors.- 10.3.6 Edge Constructors.- 10.3.7 Graph Selectors.- 10.3.8 Vertex Selectors.- 10.3.9 Edge Selectors.- 10.3.10 Passive Iterators.- 10.3.11 Active Iterators.- 10.3.12 Module Initialization.- References.- 11 The Bounded Directed Graph.- 11.1 Bounded Directed Graph Interface.- 11.1.1 Type Declarations.- 11.1.2 Exception Handling.- 11.1.3 Graph Constructors.- 11.1.4 Vertex Constructors.- 11.1.5 Edge Constructors.- 11.1.6 Graph Selectors.- 11.1.7 Vertex Selectors.- 11.1.8 Edge Selectors.- 11.1.9 Passive Iterators.- 11.1.10 Active Iterators.- 11.2 Bounded Directed Graph Implementation.- 11.2.1 Internal Representation.- 11.2.2 Exception Handling.- 11.2.3 Local Routines.- 11.2.4 Graph Constructors.- 11.2.5 Vertex Constructors.- 11.2.6 Edge Constructors.- 11.2.7 Graph Selectors.- 11.2.8 Vertex Selectors.- 11.2.9 Edge Selectors.- 11.2.10 Passive Iterators.- 11.2.11 Active Iterators.- 11.2.12 Module Initialization.- References.- 12 The Unbounded Undirected Graph.- 12.1 Unbounded Undirected Graph Interface.- 12.1.1 Type Declarations.- 12.1.2 Exception Handling.- 12.1.3 Graph Constructors.- 12.1.4 Vertex Constructors.- 12.1.5 Edge Constructors.- 12.1.6 Graph Selectors.- 12.1.7 Vertex Selectors.- 12.1.8 Edge Selectors.- 12.1.9 Passive Iterators.- 12.1.10 Active Iterators.- 12.2 Unbounded Undirected Graph Implementation.- 12.2.1 Internal Representation.- 12.2.2 Exception Handling.- 12.2.3 Local Routines.- 12.2.4 Graph Constructors.- 12.2.5 Vertex Constructors.- 12.2.6 Edge Constructors.- 12.2.7 Graph Selectors.- 12.2.8 Vertex Selectors.- 12.2.9 Edge Selectors.- 12.2.10 Passive Iterators.- 12.2.11 Active Iterators.- 12.2.12 Module Initialization.- References.- 13 Graph Utilities.- 13.1 DigraphSUMI Utilities Interface.- 13.1.1 Graph Selector Utilities.- 13.1.2 Vertex Selector Utilities.- 13.1.3 Graph Traversal Utilities.- 13.2 DigraphSUMI Utilities Implementation.- 13.2.1 Graph Selector Utilities.- 13.2.2 Vertex Selector Utilities.- 13.2.3 Graph Traversal Utilities.- References.- Appendices.- A Modula-2 Syntax Diagrams.- B Standard Modula-2 Routines.- C Modula-2 Compilers.- D Module Tables.- E Import Graphs.

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Terms of Use.
  • - Barnes & reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)