自定义栈Stack

package com.example.lib;

public class ArrayStack<E> implements Stack<E> {

    Array<E>  array ;

    public ArrayStack(int capacity) {
        array = new Array<>(capacity);
    }

    public ArrayStack(){
        array = new Array<>();
    }

    @Override
    public E getTop() {
        return array.getLast();
    }

    @Override
    public E removeLast() {
        return array.remove(getSize()-1);
    }

    @Override
    public void push(E e) {

        array.addLast(e);
    }

    @Override
    public int getSize() {
        return array.size();
    }

    @Override
    public boolean isEmpty() {
        return array.isEmpty();
    }

    @Override
    public String toString() {
        StringBuilder stringBuilder = new StringBuilder();

        for (int i = 0; i < array.size(); i++) {
            stringBuilder.append(array.get(i)+"");
        }

        return stringBuilder.toString();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: class Stack: def __init__(self): self.items = [] self.max_capacity = 10 def is_empty(self): return self.items == [] def push(self, item): if len(self.items) < self.max_capacity: self.items.append(item) else: print("Stack is full") def pop(self): if self.items: return self.items.pop() else: print("Stack is empty") def peek(self): return self.items[len(self.items)-1] def size(self): return len(self.items) def change_capacity(self, new_capacity): if new_capacity > self.max_capacity: self.max_capacity = new_capacity else: print("New capacity should be larger than current capacity") ### 回答2: 以下是一个简单的自定义数据结构的例子: ```python class Stack: def __init__(self, capacity): self.capacity = capacity # 的最大容量 self.stack = [] # 存储元素的列表 def push(self, item): if len(self.stack) == self.capacity: print("已满") else: self.stack.append(item) def pop(self): if len(self.stack) == 0: print("为空") else: return self.stack.pop() def is_empty(self): return len(self.stack) == 0 def is_full(self): return len(self.stack) == self.capacity def change_capacity(self, new_capacity): if new_capacity < len(self.stack): print("新容量不能小于中元素的个数") else: self.capacity = new_capacity # 测试 stack = Stack(5) print(stack.is_empty()) # 输出 True stack.push(1) stack.push(2) stack.push(3) print(stack.is_empty()) # 输出 False print(stack.is_full()) # 输出 False stack.push(4) stack.push(5) print(stack.is_full()) # 输出 True stack.push(6) # 输出 "已满" print(stack.pop()) # 输出 5 stack.change_capacity(3) # 输出 "新容量不能小于中元素的个数" ``` ### 回答3: 下面是一个自定义Stack类的示例代码: ```python class Stack: def __init__(self, capacity): self.capacity = capacity # 的容量 self.stack = [] # 的数据存储列表 def push(self, element): if self.is_full(): print("已满,无法入") else: self.stack.append(element) print("入成功") def pop(self): if self.is_empty(): print("为空,无法出") else: return self.stack.pop() def is_empty(self): return len(self.stack) == 0 def is_full(self): return len(self.stack) == self.capacity def change_capacity(self, new_capacity): if new_capacity < len(self.stack): print("新容量小于中元素数量,无法改变容量") else: self.capacity = new_capacity print("容量已改变为", new_capacity) # 测试代码 stack = Stack(5) print(stack.is_empty()) # 输出 True stack.push(1) # 入成功 stack.push(2) # 入成功 stack.push(3) # 入成功 print(stack.is_empty()) # 输出 False print(stack.is_full()) # 输出 False print(stack.pop()) # 输出 3 print(stack.pop()) # 输出 2 stack.change_capacity(3) # 容量已改变为 3 print(stack.pop()) # 输出 1 print(stack.is_empty()) # 输出 True ``` 这个Stack类实现了入(push)、出(pop)、判断是否为空(is_empty)、判断是否已满(is_full)以及改变容量(change_capacity)等操作。其中,容量由用户在创建Stack对象时指定,并可以通过change_capacity方法进行修改。当已满时,无法再进行入操作;当为空时,无法进行出操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值