Data structures 这个类似队列的数据结构有名称吗?

Data structures 这个类似队列的数据结构有名称吗?,data-structures,Data Structures,它非常简单,只有两个操作,您可以推送一个值,或者获取所有值,从结构中清除所有这些值。可以使用队列聚合轻松实现 push(值) get()->值列表,清除内容 它基本上是一个堆栈,只有“get”会重复“pop”,直到堆栈为空。 在伪代码中,这类似于: def push (v): stack.push (v) def get (): retVal = [] while stack.isNotEmpty: retval += [stack.pop () ] return r

它非常简单,只有两个操作,您可以推送一个值,或者获取所有值,从结构中清除所有这些值。可以使用队列聚合轻松实现

  • push(值)
  • get()->值列表,清除内容

它基本上是一个堆栈,只有“get”会重复“pop”,直到堆栈为空。 在伪代码中,这类似于:

def push (v): stack.push (v)

def get ():
    retVal = []
    while stack.isNotEmpty: retval += [stack.pop () ]
    return retVal

在我看来,提供此功能的数据结构没有通用名称。根据
get()
提供的列表顺序,它类似于堆栈或队列

假设使用Java,这可能适用于您(未经测试):

import java.util.ArrayList;
导入java.util.Collection;
导入java.util.Stack;
公共类FlushStack扩展了堆栈{
公共集合get(){
ArrayList元素=新的ArrayList(此);
这个.clear();
返回元素;
}
}

是的,我想你是对的,找不到它的名字,所以我按照你的建议,叫它Flush*:-)
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;
    }

}