該方法在一個類 Heap 中,它在 C# 中創建一個 Heap 資料結構 此方法在 O(K log n) 時間內找到第 K 個最小值 這行究竟做了什么
List<IHeapifyable<K, D>> temp = new List<IHeapifyable<K, D>>();
有人可以在 C# 代碼中解釋這一特定行嗎?整個代碼在這里
public IHeapifyable<K, D> KthMinElement(int k)
{
if (Count is 0) throw new InvalidOperationException();
if (k <= 0 || k > Count) throw new ArgumentOutOfRangeException();
IHeapifyable<K, D> kthMin = null;
List<IHeapifyable<K, D>> temp = new List<IHeapifyable<K, D>>();
for (int i = 1; i <= k; i )
{
if (i == k) kthMin = data[1];
temp.Add(this.Delete());
}
foreach (var node in temp) this.Insert(node.Key, node.Data);
return kthMin;
}
uj5u.com熱心網友回復:
尖括號將泛型型別引數括起來。它使用List<T>where Tis IHeapifyable<K, D>,所以它是List<IHeapifyable<K, D>>. 就像您要嵌套這樣的方法呼叫一樣:
Method1(Method2(arg));
所以你最后會得到兩個右括號。
uj5u.com熱心網友回復:
尖括號是它們所描述的資料型別中包含的內容的開始和結束。
List<IHeapifyable<K, D>> temp = new List<IHeapifyable<K, D>>();
所以這一行說的是:創建一個List包含一種或多種IHeapifyable<K,D>資料型別的資料型別并將其分配給變數temp
用這個初始化一個整數串列
List<int>
你的例子是一樣的,除了int它不是
IHeaplifyable<K,D>
所以如果你int用IHeaplifyable你得到的替換。
List<IHeaplifyable<K,D>>
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/476832.html
