A) By Querying Owner.Type Field:
[SELECT Id,CaseNumber,OwnerId,Owner.Name,Owner.Type FROM Case]
OR
for (Case objCase : Trigger.new)
{
If (objCase.Owner.Type == User.sobjecttype) { /* Code if Owner is User*/}
else{/*code if Owner is Queue*/ }
}
Possible values of Owner.Type are
1. User
2. Queue
B) if(string.valueOf(c.OwnerId).startsWith('005')){//owner is User }
if(string.valueOf(c.OwnerId).startsWith('00G')){//owner is Queue}
C)for (Case objCase : Trigger.new)
{
If (objCase.OwnerID.getsobjecttype() == User.sobjecttype) { /* Code if Owner is User*/}
else{/*code if Owner is Queue*/ }
}