我是计算机科学的第二年。我们的老师要求我们实现MyLinkedList类(即使它在C#中默认存在很难),以提高我们的编程技能(算法)。
我能够实现大部分代码并对其进行测试,但我无法实现返回链表大小的函数。
这是我迄今为止所做的:
class MyLinkedList
{
class Element
{
public float value;
public Element next;
}
Element first;
public MyLinkedList()
{
first = null;
}
public void add(float x)
{
Element e = new Element();
e.value = x;
e.next = first;
first = e;
}
public float get(int i)
{
if (first == null)
{
throw new Exception("Empty list...no elements inside");
}
Element tmp = first;
for (int j = 0; j < i; ++j)
{
tmp = tmp.next;
if (tmp == null)
{
throw new Exception("...");
}
}
return tmp.value;
}
public int size()
{
// I'm completely lost on that one, I have no clue on how
// doing it.
}
}
class MainClass
{
public static void Main(string[] args)
{
//To test the code
MyLinkedList l = new MyLinkedList();
l.add(3);
l.add(5);
l.add(8);
Console.WriteLine(l.get(0));
Console.WriteLine(l.get(1));
Console.WriteLine(l.get(4));
}
}
答案 0 :(得分:2)
我不在我的开发机器上,所以我没试过这个:
public int Count()
{
int count = 0;
Element e = first
while(e != null)
{
++count;
e =e.next;
}
return count;
}
这是你需要的东西。
答案 1 :(得分:1)
试试这段代码:
func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
print("Executing background fetch")
DownloadManager.shared.fetch()
completionHandler(.newData)
}
答案 2 :(得分:0)
为什么不使用字段来跟踪大小?您可以在添加元素时递增它,并在删除时递减它。
true
这只是一个想法..当然你必须检查你是否真的添加或删除了元素。例如:您正在尝试删除列表中没有的元素。这样做可以避免每次调用size方法时计算大小。