数据结构--栈和队列

数组实现

插入(push)

data[lastIndex] = newElement
需要一个字段记录lastIndex, 初始为-1

删除(pop)

return data[lastIndex--]

取出最后的元素并把索引减少达到删除的目的.

链表实现

使用单链表, 保留对头部的引用, 其余操作和插入任意元素是一样的.

队列

实现

循环数组
头索引(删除): 初始化 -1
尾索引(插入): 初始化 -1

插入(enqueue)

if (isFull()){
    // 处理
}else if(isEmpty()){

    head = 0;
    tail = 0;
}else{

    tail = (tail + 1)%size;

}

data[tail] = newData

删除(dequeue)

if (isEmpty()){
    // 处理
}else{
    result = data[head];
    head = (head+1)%size;
    // 如果删除元素之后队列为空, 需要重新初始化所有字段
    ensureQueue()
    return result;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值