Upload
alfred-armstrong
View
215
Download
0
Embed Size (px)
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.