Абстрактный тип данных это концепция совершенно из другой области, нежели примитивные и структурные типы данных, их вообще нельзя никак сравнивать.
АТД, в английской терминологии ADT, abstract data type, это "просто" тип данных, описание класса вещей, которые вы используете в программе. Абстрактным его делает то, что описаны только операции, которые доступны с этим типом данных, но не его конкретная реализация в оперативной памяти.
Например, если система типов в нашем ЯП позволяет определять АТД, мы можем определить в своей программе тип Printable, то есть, что-то, способное быть напечатанным. У этого типа будет определён один метод: `print`, который "печатает" данные на целевую канву. Конкретная реализация этого АТД, будет обязана реализовать этот метод, но с точки зрения системы типов нас это уже не волнует.
Примитивные типы данных отличаются от структурных типов данных так же, как атомы отличаются от молекул. Структурные типы данных состоят из данных примитивных типов и, возможно, других структурных типов.
Традиционный пример структурного типа данных это класс, описывающий геометрическую точку в трёхмерном пространстве, Point. Он содержит три элемента данных, координаты x, y и z, и каждая координата представлена данными примитивных типов, например, double, числа с плавающей точкой двойной точности.