In Chu et al. (2004), an efficient structure-preserving doubling algorithm (SDA) was proposed for the solution of discrete-time algebraic Riccati equations (DAREs). In this paper, we generalize the SDA to the G-SDA, for the generalized DARE: (EXE)-X-T = A(T)XA - (A(T)XB + (CS)-S-T) (R + (BXB)-X-T)(-1) (B(T)XA + (SC)-C-T) + C(T)QC. Using Cayley transformation twice, we transform the generalized DARE to a DARE in a standard symplectic form without any explicit inversions of ( possibly ill-conditioned) R and E. The SDA can then be applied. Selected numerical examples illustrate that the G-SDA is efficient, out-performing other algorithms.