Does a wallet containing multiple addresses have a single private key? Title says it all. Would one private key enable you to recover all the addresses in your wallet? Or does a wallet just contain a series of key-pairs?
There are three main types of wallets:


non-deterministic (random) wallets
sequential deterministic wallets
hierarchical deterministic wallets


With a non-deterministic (random) wallet, all the private/public keypairs are generated randomly. The wallet may generate 100 random private keys as soon as it is initialized, for example.

With a sequential deterministic wallet, a passphrase or sequence of characters is randomly generated to act as a seed. It is then repeatedly incremented and hashed to generate new private keys.

With a hierarchical deterministic wallet, a single keypair is created initially and is known as the master keypair. This master keypair is used to generate child keypairs (remarkably, new bitcoin addresses can be generated using just the public key).

Here's a more in-depth explanation: What is a deterministic wallet?

Also, here's my python implementation of a sequential deterministic wallet. And here's a good example of a hierarchical deterministic wallet.