As stated, none of the 3 (snapshot, collection, or Virtual copy) takes up more than a trivial amount of disk space in the catalog and no space outside the catalog (other than in backups of the catalog, of course).
I might refine the prior definition of a snapshot though. A snapshot marks a spot in the list of history steps from the develop module. It is just a marker and not a copy of the all the develop module settings although it can be thought of in that way. if you apply a snapshot it reverts all the changes to the state they were in when the snapshot was created and adds a history panel entry to the top of the list stating which snapshot was applied (reverted to).
As stated a (Regular) Collection is a list of images, like a playlist, so depending on how many images are in the Collection the amount of disk needed to hold that list in the catalog can vary but even giant collections can still be considered as consuming a small amount of space.
A VC (Virtual copy) is a new image entry in the catalog and would take up about as much space as would re-importing an image (but would not take up any space outside the catalog). The only initial difference between the catalog entry for the initial image and the VC is that the VC's starting point is the state of the original at the time the VC is created. In other words if the original image had 100 develop steps applied to it at the time the VC was created, the VC would have one that encompasses the net result of all 100 changes from the original. Both the original image and the VC, refer back to the original image file so there is no additional space consumed outside of the catalog. In addition, as both the original image and the VC both point to the same unmodified image file, "resetting" either one reverts the image to that of the original file as imported.