This paper introduces C++ programming abstractions for maintaining load-balanced partitions of irregular and adaptive trees. Such abstractions are useful across a range of applications and MIMD architectures. They free the user from low-level implementation details including interprocessor communication, data partitioning, and load balancing. We illustrate the use of these abstractions for gravitational N-body simulation. Our strategy for parallel N-body simulation is based on a technique for implicitly representing a global tree across multiple processors. This substantially reduces the programming complexity and the overhead for distributed memory architectures. We further reduce the overhead by maintaining incremental data structures.