<c++primer>链表节点的构造函数问题
//节点类
class CItem
{
private:
int m_val;
CItem * mp_next;
public:
CItem(int value = 0, CItem * item = 0);
....
}
// 构造函数
CItem::CItem(int value, CItem * item)
:m_val( value )
{
if (!item)
mp_next = 0;
else
{
mp_next = item-> mp_next; // a
item-> mp_next = this; // b (就是这两个地方)
}
}
----------------------------------------
如果 item 不是空指针的时候, a 的意思是:把节点的 next 指针指向 item-> mp_next; 但是item的next指针又指向了this... 这是为什么??
===========
让我写的话,可能就这样写
mp_next = item;
一句话不就解决了吗?
-------------------------------------
有点乱了,请各位给理清一下思路,谢谢..
[解决办法]
注意先后次序呀。
x = 1;
y = x;
x = 2;
y能等于2吗。
[解决办法]
链表就像一堆人手拉手,但不结合.
循环链表就是哪堆人的头号和尾号也手拉手.
队就像一个小隧道里的人===========先进的先出来
栈就像朝个容器里丢石头,出来的就是最后的一块是头