[英]C# Sorted list without LINQ and SORT
我的问题是,是否可以创建一个列表,将这些对象放在其中后对其中的对象进行排序?
一无所获后,我做了一个新的链表。 唯一的任务是使该列表按其将包含的对象的字符串字段排序,同时保持可教导性。
我有以下代码:
class LancoltLista<T> : IEnumerable
{
class ListaElem
{
public T tartalom;
public ListaElem kovetkezo;
}
ListaElem fej;
public void ElejereBeszuras(T elem)
{
ListaElem uj = new ListaElem();
uj.tartalom = elem;
uj.kovetkezo = fej;
fej = uj;
}
public void VegereBeszuras(T elem)
{
if (fej == null)
{
ElejereBeszuras(elem);
}
else
{
ListaElem e = fej;
while (e.kovetkezo != null)
{
e = e.kovetkezo;
}
ListaElem uj = new ListaElem();
uj.tartalom = elem;
e.kovetkezo = uj;
}
}
public IEnumerator GetEnumerator()
{
return new ListaBejaro(fej);
}
class ListaBejaro : IEnumerator<T>
{
ListaElem elso, jelenlegi;
public ListaBejaro(ListaElem elso)
{
this.elso = elso;
jelenlegi = null;
}
public bool MoveNext()
{
if (jelenlegi == null)
{
jelenlegi = elso;
}
else
{
jelenlegi = jelenlegi.kovetkezo;
}
return jelenlegi != null;
}
public void Reset()
{
jelenlegi = null;
}
object IEnumerator.Current
{
get { return this.jelenlegi.tartalom; }
}
public T Current
{
get { return this.jelenlegi.tartalom; }
}
public void Dispose()
{
elso = null;
jelenlegi = null;
}
}
}
这里的问题是我无法比较p.kulcs和kulcs。
对于现实世界的应用程序,您可以使用内置的SortedList<T>
。
对于家庭作业,您将必须对照整个列表检查在add方法中获得的每个项目,并将其插入正确的位置:介于大于或等于的最后一个元素与小于等于的第一个元素之间,然后。
当然,如果列表为空,或者没有元素大于添加的元素,则只需将元素追加到最后一个可用位置。
由于这是家庭作业,因此我将让您自己编写代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.