difference between primitive and non primitive data structure