Mik*_*ott 5 c# struct pointers class
列表的节点,其中每个元素指向下一个元素,列表的头部如下所示:
typedef struct Node {
int value;
Node* next;
Node** head;
} Node;
Run Code Online (Sandbox Code Playgroud)
头可以改变,因此我们使用Node**头.我知道类是作为参考传递的,所以我可以像这样制作前2个属性:
class Node {
int value;
Node next;
????
}
Run Code Online (Sandbox Code Playgroud)
如何制作头属性?
创建一个包装类来取代双指针:
class Reference<T>
{
public T Value {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
通常,这是通过传递对包含对象的引用来处理的.例如,如果这是针对链接列表,您可能会执行以下操作:
class Node
{
int Value { get; set; }
Node Next { get; set; }
LinkedList list;
Node Head { get { return list.Head; } }
public Node(LinkedList parent)
{
this.list = parent;
}
}
Run Code Online (Sandbox Code Playgroud)
这样,当包含节点的实际列表的"head"元素发生更改时,类中的属性将自动反映新值.