1. An address lookup structure comprising: a plurality of hash tables each storing prefixes for address lookups; a content addressable memory storing at least some prefixes for which a collision occurs within at least one of the hash tables; and a hashing lookup search mechanism that comprises: a routing table implemented with selective hashing for a plurality of prefixes with different lengths; and a plurality of memory blocks, wherein each hash table is allocated a group of the memory blocks based on a size of the respective hash table and a pre-assigned maximum number of allocated blocks.