数据结构--堆、队列

1.堆的定义:栈也是一种线性数据结构,它允许从一端入,且从一端出的数据结构,这一端称为栈顶,具备后进先出(Last in first out)LIFO 

  A-->B-->C依次从栈顶入栈

C-->B-->A依次出栈

 

 

2.队列也是一种线性数据结构,是数组的一种子集,他允许元素从一端入(队尾),从另一端出(对首),具有先进先出特点(First in First Out)FIFO

 

3.自己实现一个栈的过程代码

    private MyArray<E> array;

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

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

    @Override
    public void push(E e) {
        array.addLast(e);
    }

    @Override
    public E pop() {
        return array.removeLast();
    }

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

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

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

4.自己实现一个队列的过程

 */
public class ArrayQueue<E> implements MyQueue<E> {

    private MyArray<E> queue;

    public ArrayQueue(int capacity){
        queue=new MyArray<>(capacity);
    }

    public ArrayQueue(){
        queue=new MyArray<>();
    }

    @Override
    public void enQueue(E e) {
         queue.addLast(e);
    }

    @Override
    public E deQueue() {
        return queue.removeFirst();
    }

    @Override
    public E getFront() {
        return queue.getFirst();
    }

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

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

    @Override
    public int getCapacity() {
        return queue.getCapacity();
    }


    @Override
    public String toString() {
        StringBuilder stringBuilder=new StringBuilder();
        stringBuilder.append("capacity is " +queue.getCapacity())
                .append(" size is "+queue.getSize())
                .append(" front  [");
        for(int i=0;i<queue.getSize();i++){
            if(i !=queue.getSize()-1){
                stringBuilder.append((E)queue.get(i)).append(",");
            }else{
                stringBuilder.append((E)queue.get(i) +"]").append(" tail ");
            }
        }
        return stringBuilder.toString();
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值