📄 polynomialassortedlist.cs
字号:
namespace Opus6
{
using System;
using System.Collections;
[Version("$Id: PolynomialAsSortedList.cs,v 1.6 2001/10/28 19:50:09 brpreiss Exp $"), Copyright("Copyright (c) 2001 by Bruno R. Preiss, P.Eng.")]
public class PolynomialAsSortedList : Polynomial
{
public PolynomialAsSortedList()
{
this.list = new SortedListAsLinkedList();
}
public override void Add(Term term)
{
this.list.Insert(term);
}
public override void Differentiate()
{
Visitor visitor1 = new PolynomialAsOrderedList.DifferentiatingVisitor();
this.list.Accept(visitor1);
ComparableObject obj1 = this.list.Find(new Term(0, 0));
if (obj1 != null)
{
this.list.Withdraw(obj1);
}
}
private static Term NextTerm(IEnumerator e)
{
return (e.MoveNext() ? ((Term) e.Current) : null);
}
public override Polynomial Plus(Polynomial poly)
{
PolynomialAsSortedList list1 = (PolynomialAsSortedList) poly;
Polynomial polynomial1 = new PolynomialAsSortedList();
IEnumerator enumerator1 = this.list.GetEnumerator();
IEnumerator enumerator2 = list1.list.GetEnumerator();
Term term1 = PolynomialAsSortedList.NextTerm(enumerator1);
Term term2 = PolynomialAsSortedList.NextTerm(enumerator2);
while ((term1 != null) && (term2 != null))
{
if (term1.Exponent < term2.Exponent)
{
polynomial1.Add(new Term(term1));
term1 = PolynomialAsSortedList.NextTerm(enumerator1);
}
else
{
if (term1.Exponent > term2.Exponent)
{
polynomial1.Add(new Term(term2));
term2 = PolynomialAsSortedList.NextTerm(enumerator2);
continue;
}
Term term3 = term1 + term2;
if (term3.Coefficient != 0)
{
polynomial1.Add(term3);
}
term1 = PolynomialAsSortedList.NextTerm(enumerator1);
term2 = PolynomialAsSortedList.NextTerm(enumerator2);
}
}
while (term1 != null)
{
polynomial1.Add(new Term(term1));
term1 = PolynomialAsSortedList.NextTerm(enumerator1);
}
while (term2 != null)
{
polynomial1.Add(new Term(term2));
term2 = PolynomialAsSortedList.NextTerm(enumerator2);
}
return polynomial1;
}
public override string ToString()
{
return this.list.ToString();
}
private Opus6.SortedList list;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -