數據結構多項式加法

typedef struct
{
	int Matrix;  //係數
	int Order;   //階
}Item; //多項式的項

typedef struct
{
	Item item[MAXSIZE];
	int length; //多項式長度
}Polynomial;

Polynomial Add(Polynomial AH, Polynomial BH) //普通的合併
{
	Polynomial CH;
	initPolynomial(CH);
	int i = 0, j = 0, k = 0;
	while (i < AH.length && j < BH.length)
	{
		if (AH.item[i].Order == BH.item[j].Order)
		{
			CH.item[k].Order = AH.item[i].Order;
			CH.item[k].Matrix = AH.item[i].Matrix + BH.item[j].Matrix;
			CH.length++;
			i++; j++; k++;
		}
		else if (AH.item[i].Order > BH.item[j].Order)
		{
			CH.item[k] = AH.item[i];
			CH.length++;
			i++; k++;
		}
		else
		{
			CH.item[k] = BH.item[j];
			CH.length++;
			j++; k++;
		}
	}
	for (i; i < AH.length; i++)
	{
		CH.item[k] = AH.item[i];
		CH.length++;
	}
	for (j; j < BH.length; j++)
	{
		CH.item[k] = BH.item[j];
		CH.length++;
	}
	return CH;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章