Low-density parity check (LDPC codes, first introduced by Gallager (1962), are error-correcting codes based on very sparse parity check matrices. Recently, in the wake of excellent performance of turbo codes, LDPC codes were rediscovered as another category of random codes approaching the Shannon capacity limit with practical decoding complexity. Extensive investigation of the applications of turbo codes and LDPC codes for data storage channels has been reported. While LDPC codes can be iteratively decoded using the sum-product algorithm with moderate complexity, the memory required to specify the nonzero elements in the random parity check matrix can be a major challenge for hardware implementation. Construction of good LDPC codes with structure is particularly desired in data storage channels to facilitate low complexity implementation. We address this issue by introducing a class of low complexity structured LDPC codes which are useful for optical data storage.