Привет всем, это мой первый средний пост об абстрактных типах данных в языках программирования.
Итак, давайте погрузимся в основы,

АБСТРАКТ + ТИП ДАННЫХ
Абстракция здесь означает скрытие всего, чья реализация и подробности фона скрыты и не показаны пользователю. Например, машина, человеческое тело - все для нас абстрактно (если только мы не механик или врач: 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;
 }
 
 
}