Pseudocode Guidelines for Writing Algorithms High-level description: –Begin with an English...

Preview:

Citation preview

Pseudocode Guidelines for Writing Algorithms

• High-level description:– Begin with an English description of how the algorithm

works.

– Include a general overview of the approach and goals.

– You may want to include examples and diagrams of the data structures that help make the operation of the algorithm more clear.

– For recursive algorithms it is often useful to clearly describe the base and inductive cases that make the algorithm correct.

– About one or two paragraphs of text is usually enough.

Language and Syntax

• Follow basic C and/or C++ syntax. – Dynamically created structures should be allocated

using "new" and deallocated using "delete".

– Avoid the use of advanced C++ features like iterators, templates, class inheritance, etc.

– Do not rely on pre-defined classes from the Weiss book unless that is part of the assignment (as it was in the case of hw #1).

Functions and Operators• You may assume that you have at your disposal the

basic operations of the data type you are manipulating.

• Introduce definitions for the relational operators applied to non-numeric types. – For example:

Define (F < G) for nodes F and G to hold iff (F.data < G.data)

This should be done only to clarify, never to obscure, the presentation.

Additional Tips

• Include meaningful comments in the body of the pseudocode.

• Try to make the program as succinct and elegant as you can. This is not only good style but usually makes the algorithm easier for others to understand.

• Pseudocode should be typed (preferred) or VERY neatly handwritten.

Lists and writing pseudocode

• Given 2 sorted lists, L1 and L2, write a procedure to compute L1 U L2 (the union of the two lists). The resulting list should be sorted as well.

Recursive Algorithms

• Provide a recursive algorithm that given a binary tree determines the number of leaves in the tree.

Recommended