It depends on how you've implemented the floors to begin with and also what kind of data is stored in a 'floor'. Assuming you've not made the floors yet, you could use an approach with instance variables, for example different variables for each floor 1,2,3,4.
For 1) then you can say e.g. if 2 is clicked/removed, set 2 to the value in 3, set 3 to the value in 4 and set 4 to <empty> etc
for 2) e.g. if 2 is clicked and 'occupied', then you check if 3 is 'empty', if so you set 3 to the value of 2, and set 2 to the new value. if 3 is 'occupied' then do nothing.
Another approach especially if it is going to have a crazy amount of floors or it is going to be only a single tower in the game then it might be better to use an array, for 1) if you delete a row, the others shift down automatically, for 2) you can check the next room etc as mentioned above.