我想知道setcdr
,setcar
和之间cdr
的区别car
。我知道car
指的是节点的值,而cdr
函数指的是节点中的下一个指针,但我不明白它们之间的区别。
setcdr
功能:
void setcdr( Node* p, Node* q ) {
assert (p != nullptr);
p->next = q;
}
是的void
,那么这是如何设置链表的呢?它不应该返回一个Node
吗?
//returns the data field of the Node
// if p is the nullptr, we cannot get its data ...exit abruptly
int car( Node* p ) {
assert (p != nullptr);
return( p->value );
}
// returns the next field of the Node
// if p is the nullptr, we cannot get its next.... exit abruptly
Node* cdr( Node* p ) {
assert (p != nullptr);
return( p->next );
}
void setcar( Node* p, int x ) {
assert (p != nullptr);
p->value = x;
}