【问题标题】:What string is at the top of the stack and what string is at the bottom of the stack什么字符串在栈顶,什么字符串在栈底
【发布时间】:2019-10-09 07:09:15
【问题描述】:

使用接口中包含的以下 5 种不同方法:

add(newEntry) : 在队列后面添加一个新条目

remove() : 移除并返回队列的最前面的条目

peek() :检索队列的顶部条目而不更改队列


队列 myQueue = new LinkedList();

myQueue.add( “Jane” ); 
myQueue.add( “Jess” ); 
myQueue.add( “Jill” ); 
myQueue.add( myQueue.remove()); 
myQueue.add( myQueue.peek()); 
myQueue.add( “Jim” ); 
String name = myQueue.remove(); 
myQueue.add( myQueue.peek());

我希望这些物品是这样订购的:

上/前

吉尔

杰斯

吉姆

吉尔

底部/后部

【问题讨论】:

  • 是什么阻止你测试它?另外,当标题谈到堆栈时,为什么要使用 LinkedList?

标签: java linked-list queue


【解决方案1】:

我已经测试了你的代码,一切正常。

一开始队列是这样的

 Jane -> Jess -> Jill

然后我们删除顶部,然后将其添加到底部

 jesss -> jill -> jane

然后我们将顶部添加到底部

 jess -> jill ->jane -> jess

然后我们将jim添加到底部

 jess -> jill ->jane -> jess -> jim

然后我们移除顶部

 jill ->jane -> jess -> jim

然后我们将顶部添加到底部

 jill ->jane -> jess -> jim -> jill

【讨论】:

    【解决方案2】:

    您的问题的标题是关于堆栈,但您的问题的内容是关于使用 LinkedList 的队列实现。 Stack 和 Queue 都是不同的数据结构,工作方式也不同。假设你的意思是一个队列,这些操作之后的正确顺序是

    吉尔 -> 简 -> 杰斯 -> 吉姆 -> 吉尔

    操作 1 添加吉尔

    Queue becomes - Jane
    

    操作 2 添加杰斯

    Queue becomes - Jane -> Jess
    

    行动 3 添加吉尔

    Queue becomes - Jane -> Jess -> Jill
    

    行动 4 从队列中删除第一个元素并将其添加到末尾

    Queue becomes - Jess -> Jill -> Jane
    

    操作 5 再次将第一个元素添加到队列中

    Queue becomes - Jess -> Jill -> Jane -> Jess
    

    操作 6 添加吉姆

    Queue becomes - Jess -> Jill -> Jane -> Jess -> Jim
    

    操作 7 删除第一个元素

    Queue becomes -Jill -> Jane -> Jess -> Jim
    

    操作 8 再次将第一个元素添加到队列中

    Queue becomes - Jill -> Jane -> Jess -> Jim -> Jill
    

    【讨论】:

    • 您的答案在操作 5 中是错误的。在我们从顶部删除 jane 之后,我们将其添加到底部。所以队列就像 jess-> jill -> jane
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-06
    • 2022-10-09
    • 1970-01-01
    相关资源
    最近更新 更多