0

刚刚结束春假,很难记住一些这些东西。

现在我正在尝试创建一个 Lstack 类,该类将创建一个堆栈 ADT,该堆栈 ADT 实现为节点的链接列表。

这是 Lstack 类

public class Lstack {
    int numUsed = 0;
    Lstack list = new Lstack();
    public Lstack(){
    }
    public void push(Car x){

    }
}

我如何将 Car x (一个对象)推入堆栈?

4

3 回答 3

5

堆栈是一种LIFO结构。
因此,如果您在 a 的支持下实现它,linked list那么您应该确保您进入push您的同一侧。 由于这是一个家庭作业,我不会提供更多信息。这应该足够了listpop

于 2013-04-03T19:45:37.307 回答
0

我做对了吗?

public class Lstack {
    int size;
    int numUsed = 0;
    Car[] list;
    public Lstack(){
        list = new Car[size];
    }
    public void push(Car x){
        list[numUsed] = x;
        numUsed++;
    }
    public Car pop(){
        Car temp;
        numUsed--;
        temp = list[numUsed];
        return temp;
    }
    public boolean isEmpty(){
        if(numUsed==0){
            return true;
        }
        else
            return false;
    }
    public int size(){
        return numUsed;
    }
    public void display(){
        System.out.println("--------------------------------------------");
        System.out.print("TOP | ");
        for(int i = 0; i < numUsed; i++){
            System.out.print(list[i].plate +" | ");
        }
    }

}
于 2013-04-03T20:09:03.713 回答
0

堆栈是一种后进先出 (LIFO) 结构。所以我会这样:

该类Car必须具有next同一类的成员:

class Car {
    String brand;
    Car next;
    public Car(String brand, Car car) {
        this.brand = brand;
        next = car;
    }
    // And the class code goes on
}

至于链表:

 class Llist {
     Car top;
     public Llist() {
         top = null;
     }
     public void push(String carBrand) {
         top = new Car(carBrand, top);
     }
 }

只是一个例子。

于 2013-04-03T19:49:39.993 回答