Extending Linux partition and adding swap in a dual-boot system

I initially gave my Linux partition 30GB, 27GB to root and 3GB to swap system.

the problem is that my swap is on the end of the disk and is not adjacent to D.
(So that I can extend D, shrink it, extend linux, shrink D again, create swap (though I guess what I plan to do is stupid))

what I want to do is to extend Linux partition up to 50GB and give it like 5GB swap. preferably to have swap on the end of the disk.

PC Partitions, 5th partition on Disk0 is linux