链表 题目Extendable queue

写链表还是不熟练。

1、删除链表

MemBlock<T> *temp;
while (frontBlock_ != backBlock_) {
        temp = frontBlock_;
        frontBlock_ = frontBlock_->next;
        delete temp;
}
建立临时结点指向头结点,移动头结点之后删除临时结点,然后临时结点再指向新的头结点,所以临时结点的赋值要在循环里。


2、push操作和pop操作:

push操作:(队尾)

void Queue<T>::appendBlock() {
     MemBlock<T> *temp = new MemBlock<T>;
     backBlock_->next = temp;   //在队尾压入新结点
     temp->prev = backBlock_;
     temp->next = NULL;
     backBlock_ = temp;  //更新队尾,不要忘了
     ptrb_ = 0;
     size_++;
}
pop操作:(队头)
void Queue<T>::reduceBlock() {
     MemBlock<T> *temp = frontBlock_;
     frontBlock_ = frontBlock_->next;  //更新队头
     delete temp;  //删除旧队头
     size_--;
     ptrf_ = 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值