首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >改变Deque元素

改变Deque元素
EN

Stack Overflow用户
提问于 2015-09-22 10:53:24
回答 2查看 1.5K关注 0票数 1

我用以下方法制作了我自己的Deque类:

代码语言:javascript
复制
Deque#pushLeft(E e), pushRight(E e), popLeft() and popRight(). 

是否有可能建立一种可以改变Deque的任何元素的方法?我想从左到右编辑它们。所以editRight(index, E newElement)editLeft也是一样的。

我怎么开始这么做?我需要用个磁铁吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-22 11:21:26

您已经将Deque实现为一个双链接列表。支持editLefteditRight的最简单方法是沿着链接前进,直到到达希望更改的节点为止。

类似于:

代码语言:javascript
复制
public void editLeft(int index, Item item) {
    Node node = right;
    while (node != null && index > 0) {
        node = node.prev;
        index--;
    }
    if (node != null) {
        node.item = item;
    } else {
        throw new IllegalRangeException("Attempt to edit value with illegal index");
    }
}
票数 1
EN

Stack Overflow用户

发布于 2015-09-22 11:13:10

Deque是ADT,它可以通过链表或数组作为数据结构来实现。您的答案取决于用于存储elements.and的数据结构的类型,我还建议您实现一个peek操作,它将为您提供编辑元素的引用,建议.peek操作可用于其他高级操作,如delete/contains等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32715016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档