Sobes.tech
Junior — Middle

Ar Dart kalboje yra įmontuotų duomenų struktūros steko įgyvendinimų?

sobes.tech AI

Atsakymas iš AI

Dart kalboje nėra atskiros įmontuotos duomenų struktūros, vadinamos "krūva" kaip atskiroji klasė, tačiau krūvą galima įgyvendinti naudojant standartinę List klasę. Dart'e sąrašas (List) palaiko metodus add ir removeLast, kurie leidžia jį naudoti kaip krūvą (LIFO).

Pavyzdys, kaip įgyvendinti krūvą remiantis List:

class Stack<T> {
  final List<T> _list = [];

  void push(T value) => _list.add(value);

  T pop() => _list.removeLast();

  T get top => _list.isNotEmpty ? _list.last : null;

  bool get isEmpty => _list.isEmpty;
}

Taigi, dirbant su krūvomis Dart'e, dažniausiai naudojama List.