如何在 c# 中使单个链表通用
本文关键字:单个 链表 | 更新日期: 2023-09-27 18:36:13
我有一个单一链表的实现,它可以很好地处理int
。我想让它成为没有继承的泛型。我用于测试的数据是电信号,我需要测量填充它的执行时间。我不需要添加任何新方法,一切都很好,只需要将其作为模板/泛型即可。我怎样才能做到这一点?谢谢。
这是我的代码...
public class LinkedList
{
//structure
private Node head;
private int count;
public LinkedList()
{
//constructor
}
public bool IsEmpty
{
//check if list is empty or not
}
public int Count
{
//count items in the list
}
public object Add(int index, object o)
{
//add items to the list from beginning/end
}
public object Delete(int index)
{
//delete items of the list from beginning/end
}
public void Clear()
{
//clear the list
}
}
你的LinkedList应该看起来像这样
public class LinkedList<T>
{
public class Node<T>
{
public T data;
public Node<T> next;
}
//structure
private Node<T> head;
private int count;
public LinkedList()
{
//constructor
}
public bool IsEmpty
{
//check if list is empty or not
}
public int Count
{
//count items in the list
}
public T Add(int index, T o)
{
//add items to the list from beginning/end
}
public T Delete(int index)
{
//delete items to the list from beginning/end
}
public void Clear()
{
//clear the list
}
}
我在这里实现了一个 https://codereview.stackexchange.com/questions/138142/linked-list-in-c
- 将链表元素类型的所有实例从
int
更改为T
。(不要盲目地更改所有int
- 只更改用于保存元素的元素。因此,例如,不要更改count
或index
! - 将类声明更改为
public class LinkedList<T>
- 尝试编译它并修复任何错误。
- 更新单元测试以便它们进行编译,并确保它们仍然全部通过。 (你的链表确实有单元测试,对吧? ;)
我不确定您的object
参数。也许它们也应该改为T
。
您没有显示Node
实现,但我猜您必须为此做类似的事情:使其Node<T>
等。
将
的对象
类声明为 LinkedList<T>
,其中 T
是泛型类型,然后修改 Add
方法以接受类型为 T
: public object Add(int index, T element)