我在C#中实现链表所以我用两种方法链表实现在C#()
第一种方法
unsafe public struct Node
{
public int info;
public Node* link;
}
这里是添加节点方法
public void AddNode(int a)
{
Node temp = new Node();
temp.info = a;
if (Head == null)
{
Head = Current = &temp;
}
else
{
(*Current).link = &temp;
Current = &temp;
}
}
当我运行此代码它不节省内存意味着它创建一个实例Node temp = new Node();
结构,只要它里面ADDNODE它的内存是保存,但是当我打印出来使用头这种方法以外的给我NullRefrenceException
第二种方法
使用类和对象
public class Node
{
public int info;
public Node link;
}
class Linked_list
{
public Node Head;
public Node Current;
public void insert_element_linkedlist(int a)
{
Node temp = new Node();
temp.info = a;
if (Head == null)
{
Head = Current = temp;
}
else
{
Current.link = temp;
Current = temp;
}
}
}
第二种方法正常工作意味着每个临时节点Node temp = new Node();
都保存在内存中。
问题: 为什么它不保存结构实例?
对不起,我的子标准英语。
这只是一个练习来学习语言,或者你可以使用[LinkedList类](https://msdn.microsoft.com/en-us/library/he2s3bh7%28v=vs.110%29.aspx )?另外,在C#中使用指针是你应该只在非常奇怪的情况下做的事情;我不认为链表实现需要它。 – adv12
它是一个数据结构的练习 –
为什么它保存一个类的实例但不保存结构实例 这是什么 –