次の文章の和訳をお願いします。
Internal and External Nodes
By definition leaf nodes have no sons. Thus, in the linked representation of binary trees, left and right pointers are needed only in nonleaf nodes. Sometimes two separate sets of nodes are used for nonleaves and leaves. Nonleaf nodes contain info, left, and right fields (often no information is associated with nonleaves, so that an info field is unnecessary) and are allocated as dynamic records or as an array of records managed using an available list. Leaf nodes do not contain a left or right field and are kept as a single info array that is allocated sequentially as needed (this assumes that leaves are never freed, which is often the case). Alternatively, they can be allocated as dynamic variables containing only an info value. This saves a great deal of space, since leaves often represent a majority of the nodes in a binary tree. Each(leaf or nonleaf) node can also contain a father field, if necessary.
When this distinction is made between nonleaf and leaf nodes. nonleaves are called internal nodes and leaves are called external nodes. The terminology is also often used even when only a single type of node is defined. Of course, a son pointer within an internal node must be identified as pointing to an internal or an external node. This can be done in C in two ways. One technique is to declare two different node types and pointer types and to use a union for internal nodes, with each alternative containing one of the two pointer types. The other technique is to retain a single type of pointer and a single type of node, where the node is a union that does (if the node is an internal node) or dose not (if an external node) contain left and right pointer fields. We will see an example of this latter technique at the end of this section.