Exercises4.2E2(a)4.3E2

E2(a)//写一个方法一个链栈大小通过使用一个循环移动节点到节点的指针变量形式通过堆栈

int Stack::size()const

{

Node *temp = top_node;

int count = 0;

while(temp!=NULL)

{

temp = temp->next;

count++;

}

return 0;

}

E2://赋值top_node = new_copy.top_node离开前的节点左边的赋值运算符作为垃圾。另外,当函数结束后,静态分配Stack new_copy将损毁,这将破坏新分配的左边的赋值运算符.

我们可以避免这两个问题都通过交换指针(顶级节点top_node)和(新副本顶级节点new_copy.top_node)在以下。

void Stack::operator = (const Stack &original)

{

Stack new_top(original);

Node *temp = top_node;

top_node = new_copy,top_node;

new_copy.top_node = temp;

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值