i'd suggest that you'd battle more trainers. If you beat they're Pokemon you'll get a little boost in the xp than wild Pokemon battle
easiest way to train your Pokemon is by batteling each trainers or you can practice with wild Pokemon in the grass,cave,or sea
The masterball.
use the exp share
The easiest way to get one is to trade a Krabby to a fisherman in Olivine City.
i recommend the restaurant near lake valor
It's pretty obvious... EV train (I suggest EV Training in Defense)...
The easiest way to "see" a Feraligatr is to battle your Rival only if you chose Cyndaquil as your Starter.
The way you can get zangoose in Pokemon heartgold is in the safari zone.
the easiest way to train strength would be the Soul Wars minigame.
Train them, like a normal person would. Not only will you train up your Pokemon, but you can work yourself towards completing your Pokedex by having encounters with Pokemon you don't have/haven't seen before.
Yes the same way you get shiny Pokemon in the other Pokemon games is how you get shiny Pokemon in heartgold. There is a free shiny Pokemon in the lake of rage.
get a lvl100 graodon summon him after u summon the Pokemon u need to lvl up