例如,使用 C,假设我这样定义一个节点:
typedef struct nde {
int val;
struct nde* next;
}node;
然后我用这样的东西“包装”它:
typedef struct lst {
node* head;
}list;
我确实是指这个案例。我知道如果你想包含其他信息,使用包装器可能会有用,但如果它只包含指向头部的指针,它是否被认为是“不好的做法”?对我来说这是一种更直观的方法,主要是因为在推送或弹出或使用其他一些功能时,您将始终取消引用,并且命名约定也更有意义。
最佳答案
不,这不是反模式,实际上并不少见。这允许您有一个引用列表的句柄,当您删除元素时它不会改变。如果您不这样做,那么删除列表的第一个元素是一种特殊情况,因为您需要更新调用者的指针以指向新的头部。如果有多个引用列表,几乎不可能安排所有的更新。
如果您知道列表只会有一个引用,那么就没有必要这样做。
关于c - 将链表包装在另一个仅包含列表头部的结构中是否被认为是不好的做法或反模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46821304/