Hamlet's tale is a tragic one because it presents a man who is in the center of a moral dilemma. It is difficult enough for a man to face what is making him angry even under normal circumstances. Hamlet's circumstances are certainly not normal.
Hamlet's dilemma, whether or not he should kill the king, is compounded by three things. He is extremely angry and hurt over the murder of his father. He cannot express that anger to others because in his position it would be political suicide. Finally, human nature demands that he express that anger somehow. Thus Hamlet faces a double-edged sword, he must express his anger somehow and that will lead to his downfall.
Hamlet (correctly) blames his uncle, Claudius, for the death of his father. Further compounding the issue is the fact that Claudius is now the King of Denmark and is married to Hamlet's mother, Gertrude.
Hamlet feels robbed of his both his father and his birthright. There is no doubt that Claudius is responsible for the crime, the next course of action would, of course, be to kill him.
But it is not that simple. Gertrude seems quite happy in her life with her new husband. Although Hamlet is infuriated with her as well for marrying Claudius so soon after her husband's death, he still loves her and does not wish any harm to come to her. Furthermore, if Hamlet were to kill Claudius, especially at this point, the people of Denmark would no doubt suspect the truth. This would only anger Hamlet even more since he feels that he would get caught for his 'justifiable homicide' and Claudius did not get caught for his crime. All Hamlet can do is keep quiet, and that only makes him even...