【问题标题】:How i can do search() with stack我如何使用堆栈进行搜索()
【发布时间】:2022-11-12 19:02:49
【问题描述】:
我试图弄清楚如何在我拥有的堆栈中显示所有数字,在不使用库的情况下执行搜索方法。例如 if(value = allNumbers){ return true; } 其他{ 返回​​错误; }问题是我找不到正确的方法如何在堆栈中显示allNumbers 我的代码:public class Stack <T>{ private Item<T> q=null; public boolean isEmpty() { return q==null; } public void push(T d) { Item<T> tmp=new Item<T>(d); tmp.next=q; q=tmp; } public T pop() { if (isEmpty()) return null; T tmp=q.数据; q=q.下一个;返回 tmp; } public T peek(){ if (isEmpty()) return null; T tmp = q.数据;返回 tmp; } // public boolean search (T value) { // if(value == null ) { // return false; // } // else{ // value = allNumbers ; // 返回真; // } // // } }驱动代码:public class Driver { public static void main(String[] args) { Stack<Integer> s=new Stack<Integer>();整数值 = 2; s.push(1); s.push(2); s.push(3); s.push(4); s.push(5); s.push(6); s.push(7); s.push(8); s.push(9); System.out.println("弹出:" + s.pop()); System.out.println("最后输入的数字是:" + s.peek()); // System.out.println("正在搜索:" ); // System.out.println("已找到:" + s.search(9)); while (!s.isEmpty()) { System.out.println(s.pop()); } } }
谢谢

【问题讨论】:

    标签: java


    【解决方案1】:

    我假设您的“项目”类是自定义的,因为您没有添加任何导入。考虑到这一点的解决方案是添加一种方法,该方法接受一个参数(数据)并遍历“q”列表中的所有项目。如果某项与数据匹配,则返回 true。如果不是,则返回 false。另外,请记住在“Item”类中适当地实现“equals()”方法。

    search 方法的实现应该差不多是这样的:

    public boolean search(T value) {
        if (value == null) {
            return false;
        }
        Item<T> item = q;
        while (q != null) {
            if (q.equals(value))
                return true;
        }
        return false;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-17
      • 2011-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-16
      • 1970-01-01
      • 2023-03-28
      相关资源
      最近更新 更多