1)Subnetting and Supernetting can both be done for private and public
Yes. There is no IP distinction between private or public IP addresses. The private addresses were chosen somewhat arbitrarily, and only by ISP agreement are they blocked from being routed on the public Internet. Other than that, there is no inherent difference.
2)Classful addresses weren't successful because of IP wasting,and that
is why the 'network mask' was invented,correct?
Classful addresses are wasteful because only the full class could be routed on the Internet. They could be subnetted inside the entity that owned a classful network. Masks existed before VLSM and CIDR.
3)Computers in classful networks all had public IP addresses,which led
to IP wasting.The question here is: Does this still exist nowadays?
I'm not sure I quite understand the question. Network classes no longer exist, but there are entities that had been assigned a classful network and still have the entire block that had been assigned during the time we had classful networks.
I think it is important to understand that you cannot really have an efficient method of assigning IP addresses. There have been studies and math to back that up. That is one of the reasons that IPv6 was designed from the beginning to waste addresses.
Can Public IP addresses be given to computers, not only to routers. If
so how can this be done?
Yes, by simply assigning public addresses to the hosts. It is very easy to route traffic between public networks, and that is how IP was designed to work. Many (almost all the large) companies have hosts assigned with public addresses.
4)Last, I want help with the following example:
If an organisation with 1000 computers was given a Class B network,
then every computer by standard(!) would have a public IP address. So
a lot of these addresses will remain unused and wasted. Thanks to the
introduction of the mask, the organisation could be given a subnet of
that network with fewer computers.
Is this way how it works?
The original premise of IP is that every host have a unique IP address. Because of the limited size of IPv4 addresses, and the fact that IPv4 was never envisioned to be used as it is now, that is simply not possible. This answer explains all of that.
Classes restricted the networks that could be publicly advertise to one of three classes, and that meant an organization needing 1,000 addresses would be assigned a Class B network (65,536) addresses, which the organization could internally subnet, and that wasted over 98% of the addresses in that class. That is also explained in the answer I linked.
VLSM and CIDR removed the class restrictions and allowed an organization to be assigned a smaller number of addresses. The organization needing 1,000 addresses could then ask for a
/22 network (1,024 addresses), but probably a
/21 or smaller network to allow room for growth. This is also explained in the answer I linked.
Unfortunately, the resource of "raw" IPv4 addresses (from IANA and the RIRs) to be assigned is exhausted, and an organization needing public IPv4 addresses must now buy them on the open market from companies that have extra for increasing prices. IPv6 addresses are plentiful, and IPv6 restores the original IP paradigm of every host having a unique IP address with end-to-end connectivity. This is also explained in the answer I linked.