随意编辑标题,engrish有时会混淆而不是帮助。创建指针的指针并进行修改而不修改原始指针?
我必须使(和不,我不能改变,这是它的方式必须是)简单的链接列表。 否我不能使用STL或std :: list。大部分工作都是在纸上完成的,但我似乎遇到了实现非常基本的光标的问题。
这是列表中的我的节点(的一部分):
struct Node {
int ap_nr;
Node *next;
};
我想要走线槽我添加节点功能列表:
void add_node (Node **begin, int ap_nr)
{
stuff happens
}
这是我如何调用函数:
add_node(&(*begin), ap_nr);
我想要创建一个从开始(我的列表的头)开始的光标,并通过每个节点我们槽荷兰国际集团cursor->next
直到我到达终点(while (cursor->next!=0))
,但我不能简单地说:
Node *cursor;
cursor = new Node;
cursor = begin;
因为这将直接覆盖光标首先,让我尝试无效。我仍然需要做一个指针才能开始并能够调用STRUCT函数“ - > next”
我该怎么做?
*还*我该如何记住以前的节点?我可以这样做:
Node *previous;
previous = new Node;
previous = &(*begin); // ?
'&(* begin)'完全等同于'begin',那么为什么不在调用add_node时使用那个呢? – celtschk 2012-04-02 17:33:40
首先,在C++的英文讨论中通常使用“迭代器”,而不是“游标”。其次,你不提供太多的信息。你是说你想使用一个Node结构*作为一个迭代器,并且也是一个数据容器? – 2012-04-02 17:34:41
每个节点都是独立的......它拥有它需要的所有信息,我需要做的唯一修改是添加一个或删除一个(暂时)。我想要一种从一个节点转到另一个节点的方式(列表不过是链接节点),直到我达到我的目标(无所谓),而不会丢失我的第一个节点。我也试过简单的'开始',但它没有工作,'&(*开始)'工作,所以我没有改变。 – Kalec 2012-04-02 17:38:16