In this thesis, quasi-cyclic codes are analyzed as two classes including 1-generator and multigenerators. QC codes that their generator matrices consist of one row of circulants are called 1-generator, otherwise they are called multigenerators. These codes are decomposed by the Chines Reminder Theorem into products of shorter codes over larger alphabets, and their algebraic structures are examined. Then, a new method for constructing optimal and suboptimal codes will be offered. Moreover, the algebraic characterization of linear codes with complementary duals (LCD) is given, and it is shown that asymptotically good LCD codes exist. Finally, it has been indicated that finite fields can be used successfully to construct nonbinary QC-LDPC codes