一个 SimpleStackDemo,并使用循环从数组中返回值,LIFO

阿布拉克萨斯

这是我所在的一个班的编程作业,不希望你帮我解决,帮我理解一下。我还要说,教授对程序的外观非常严格,所以请不要给我一个改变任何名称的解决方案(除非它们应该被保留。)另外,我们没有涵盖堆栈,弹出() 或 push(),所以我向前看了 4 章,以了解他在寻找什么。

这是他给我们的密码。

    public class SimpleStack {

        char[] data;//this array holds that stack
        int tos;    //index of top of stack

        //Construct an empty stack given it's size.
        public SimpleStack(int size){
            data = new char[size];

            tos = 0;
        }

        public void push(char ch){
            if(isFull()){
                System.out.println("--Stack is full.");
                return;
            }
            data[tos] = ch;
            tos++;
        }

        public char pop(){
            if(isEmpty()){
                System.out.println("--Stack is empty.");
                return (char)0;
            }
            tos--;
            return data[tos];
        }

        public isEmpty(){
            boolean empty(tos = 0);
        }

        public isFull(){

        }
}

我应该完成底部的两个布尔语句,我知道如何做到这一点。另外我应该创建调用 SimpleStack 的 main 方法,并输入 AJ 作为十个字符的测试,然后让它给我相反的结果。我没有被告知我应该如何构建 main,但教授也没有说我需要获取用户输入。所以我可以创建一个已经从 AJ 填充的数组。

我使用此代码测试了我的主要内容。我可以要求用户给我起始字母“A”,然后创建一个循环以在“K”之前结束它,我还测试了如何将数组的大小发送到 SimpleStack。

import javax.swing.*;

public class SimpleStackDemo {

    public static void main(String[] args) {

        char c[] = "ABCDEFGHIJ".toCharArray();
        int aryL = c.length;

        SimpleStack sS1 = new SimpleStack(aryL);

        //System.out.println("The Array is, " + aryL); 


        //SimpleStack sS1 = new SimpleStack(//something);

    }

}

我想我想做的是询问用户数组应该有多大,使用它来调用 SimpleStack,然后询问他们想要从哪个字母开始,然后将其放入 tos?

伊什纳克

所以,isFull很容易做到。为什么?实例化您的 时SimpleStack,用户必须指定堆栈的大小,该大小用于创建data. 你知道你在什么索引上,tos. 您所要做的就是检查是否tos是最后一个索引:

 return (tos == data.length - 1);

isEmpty遵循相同的想法。tos是您当前的索引。您所要做的就是检查您当前的索引是否为 0:

 return (tos == 0);

注意事项:

当您push()或 时pop(),您的tos增加或减少,跟踪您的索引。因为您知道自己在堆栈中的位置,所以您始终可以相对于绝对值来判断您是否位于堆栈的任一端。

在您的主要课程中:

public static void main(String[] args) {

    char c[] = "ABCDEFGHIJ".toCharArray();
    int aryL = c.length;

    SimpleStack sS1 = new SimpleStack(aryL); // You have a stack with size 10;
    System.out.println(sS1.isEmpty()); // on index 0, will return true.
    sS1.push('A'); // Adds A to top of empty stack, tos = 1 after this line
    sS1.push('B'); // Adds B to top of empty stack, tos = 2 after this line
    sS1.push('C'); // Adds C to top of empty stack, tos = 3 after this line
    sS1.pop();     // Removes top of empty stack, tos = 2 after this line
    sS1.push('C'); // Adds C to top of empty stack, tos = 3 after this line

    // Stack now looks like:
    //  C 
    //  B
    //  A -> bottom of stack

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用一个返回值?

来自分类Dev

使用 PostgreSQL xpath 函数并从数组中获取第一个返回值

来自分类Dev

使用jquery创建轮播效果-循环仅返回数组中的最后一个值

来自分类Dev

加一个返回值?

来自分类Dev

如何使用数组的返回值(在我的例子中是“右”和“左”)从一个函数(“提取”)到另一个函数(“BinToDec”)?

来自分类Dev

使用另一个函数返回值

来自分类Dev

如何仅在一个数组中从数据库返回值

来自分类Dev

javascript:从函数数组中查找第一个真实的返回值

来自分类Dev

在同一个“返回值对象”中访问一个 javascript 函数

来自分类Dev

在Node.js中的另一个文件中同步使用返回值

来自分类Dev

如何在Ansible中为另一个主机使用另一个任务中的一个任务的返回值

来自分类Dev

使用另一个数组中的值返回一个数组中的数组

来自分类Dev

使用一个方法的返回值作为同一个类中另一个方法的参数

来自分类Dev

如何使用函数返回值作为PHP中另一个函数的参数?

来自分类Dev

使用 INSERT 表 (A) 中的返回值到另一个表 (B)

来自分类Dev

返回一个值数组

来自分类Dev

数组返回一个额外的值

来自分类Dev

在Scala中,从for循环块返回一个值

来自分类Dev

如何从 Scala 中的 while/for 循环返回一个值

来自分类Dev

ng For 循环只返回数组中的最后一个值

来自分类Dev

在WordPress中返回一个循环

来自分类Dev

查找数组中的第一个、最后一个和中间值。返回最大的一个

来自分类Dev

为什么从sqlite返回值会返回一个空数组

来自分类Dev

Myrepository 的返回值必须是 MyEntity 的一个实例或 null,返回数组

来自分类Dev

返回数组中的第一个和最后一个值

来自分类Dev

AJAX返回数组中的前一个值

来自分类Dev

在PHP中使用for循环将数组值存储在另一个数组中

来自分类Dev

使用 JS 的数组映射 - 将值与另一个数组进行比较并从第二个数组返回值

来自分类Javascript

反应钩,一个功能状态的设定返回值将导致无限循环

Related 相关文章

  1. 1

    使用一个返回值?

  2. 2

    使用 PostgreSQL xpath 函数并从数组中获取第一个返回值

  3. 3

    使用jquery创建轮播效果-循环仅返回数组中的最后一个值

  4. 4

    加一个返回值?

  5. 5

    如何使用数组的返回值(在我的例子中是“右”和“左”)从一个函数(“提取”)到另一个函数(“BinToDec”)?

  6. 6

    使用另一个函数返回值

  7. 7

    如何仅在一个数组中从数据库返回值

  8. 8

    javascript:从函数数组中查找第一个真实的返回值

  9. 9

    在同一个“返回值对象”中访问一个 javascript 函数

  10. 10

    在Node.js中的另一个文件中同步使用返回值

  11. 11

    如何在Ansible中为另一个主机使用另一个任务中的一个任务的返回值

  12. 12

    使用另一个数组中的值返回一个数组中的数组

  13. 13

    使用一个方法的返回值作为同一个类中另一个方法的参数

  14. 14

    如何使用函数返回值作为PHP中另一个函数的参数?

  15. 15

    使用 INSERT 表 (A) 中的返回值到另一个表 (B)

  16. 16

    返回一个值数组

  17. 17

    数组返回一个额外的值

  18. 18

    在Scala中,从for循环块返回一个值

  19. 19

    如何从 Scala 中的 while/for 循环返回一个值

  20. 20

    ng For 循环只返回数组中的最后一个值

  21. 21

    在WordPress中返回一个循环

  22. 22

    查找数组中的第一个、最后一个和中间值。返回最大的一个

  23. 23

    为什么从sqlite返回值会返回一个空数组

  24. 24

    Myrepository 的返回值必须是 MyEntity 的一个实例或 null,返回数组

  25. 25

    返回数组中的第一个和最后一个值

  26. 26

    AJAX返回数组中的前一个值

  27. 27

    在PHP中使用for循环将数组值存储在另一个数组中

  28. 28

    使用 JS 的数组映射 - 将值与另一个数组进行比较并从第二个数组返回值

  29. 29

    反应钩,一个功能状态的设定返回值将导致无限循环

热门标签

归档