Genetic Network Programming (GNP) is a kind of volutionary methods, which evolves arbitrary directed graph programs. Previously, the program size of GNP was fixed. In the paper, a new method is proposed, where the program size is adaptively changed depending on the frequency of the use of nodes. To control and to decide a program size are important and difficult problems in Evolutionary Computation, especially, a well-known crossover operator tends to cause bloat. We introduce two additional operators, add operator and delete operator, that can change the number of each kind of nodes based on whether a node function is important in the environment or not. Simulation results shows that the proposed method brings about extremely better results compared with ordinary fixed size GNP.