  We propose an efficient encoding algorithm for the binary and non-binary
low-density parity-check codes. This algorithm transforms the parity part of
the parity-check matrix into a block triangular matrix with low weight diagonal
submatrices by row and column permutations in the preprocessing stage. This
algorithm determines the parity part of a codeword by block back-substitution
to reduce the encoding complexity in the encoding stage. Numerical experiments
show that this algorithm has a lower encoding complexity than existing encoding
algorithms. Moreover, we show that this algorithm encodes the non-binary cycle
codes in linear time.
