#data-structures
#структуры данных
Вопрос:
Это довольно просто, всего двумя операциями вы можете либо ввести значение, либо получить все значения, удалив все эти значения из структуры. Может быть легко реализовано с помощью агрегата очередей.
push(value)
get() -> list of values, clears contents
Ответ №1:
На мой взгляд, не существует общего названия для структуры данных, которая обеспечивает эту функциональность. В зависимости от порядка списка, предоставляемого get()
, это похоже на стек или очередь.
Предполагая Java, это может сработать для вас (не тестировалось):
import java.util.ArrayList;
import java.util.Collection;
import java.util.Stack;
public class FlushStack<E> extends Stack<E> {
public Collection<E> get() {
ArrayList<E> elements = new ArrayList<E>(this);
this.clear();
return elements;
}
}
Комментарии:
1. Да, я думаю, вы правы, не смог найти для нее никаких названий, поэтому я последовал вашему предложению и назвал ее Flush * 🙂
Ответ №2:
По сути, это стек, только «get» выполняет повторяющееся «pop», пока стек не опустеет. В псевдокоде это было бы что-то вроде:
def push (v): stack.push (v)
def get ():
retVal = []
while stack.isNotEmpty: retval = [stack.pop () ]
return retVal