Привет всем, это мой первый средний пост об абстрактных типах данных в языках программирования.
Итак, давайте погрузимся в основы,
АБСТРАКТ + ТИП ДАННЫХ
Абстракция здесь означает скрытие всего, чья реализация и подробности фона скрыты и не показаны пользователю. Например, машина, человеческое тело - все для нас абстрактно (если только мы не механик или врач: P).
Тип данных обозначает тип данных, которые будет содержать переменная или объект. Пример int, float, double, long и т. Д. Типы данных были разделены на примитивные и определяемые пользователем типы данных.
1. Примитивные типы данных - это типы данных, определенные системой, реализация операций которых определяется системой. Бывший. int, float, double и т. д.
2. Тип данных, определяемый пользователем - это типы данных, определенные пользователем, а их операции также определяются пользователем. Пример: класс, объект
Следовательно, абстрактный тип данных представляет собой комбинацию структуры данных и их операций. Наиболее распространенными являются связанный список, стек, очередь, очередь с приоритетом и т. Д.
При определении ADT мы не беспокоимся о деталях реализации, пока они не будут использованы.
Пример типа данных Stack Abstract:
public interface Stack<E> { void push (E element); int pop(); boolean isEmpty(); int size(); } //Implementing that in your class : public class StackImp<E> implements Stack<E> { private int size; private E element[]; private int top; @SuppressWarnings(“unchecked”)//To recover from warnings thrown by compiler StackImp(int size){ element=(E[])new Object[size]; size=0; top=-1; } public void push (E element) { if(top==this.element.length-1) { throw new IllegalStateException(“Overflow”); }else { this.element[++top]=element; size++; } } public E pop() { if(size==0) { throw new IllegalStateException(“Underflow”); } else{ size --; } return element[top — ]; } public boolean isEmpty(){ return size==0; } public int size(){ return size; } }