[연습문제] 열혈강의 자료구조 3장(5번~6번)
5. 두 개의 다항식 A와 B에 대해서 다항식의 뺄셈 A-B를 구하는 함수 polySub()를 구현해 보세요.
LinkedList* polySub(LinkedList* pListA, LinkedList* pListB)
{
LinkedList* pReturn = NULL;
ListNode* pNodeA = NULL;
ListNode* pNodeB = NULL;
if( pListA != NULL && pListB != NULL )
{
pReturn = createLinkedList();
if(pReturn == NULL)
{
printf("메모리 할당 오류 polyAdd()\n");
return NULL;
}
pNodeA = pListA->headerNode.pLink;
pNodeB = pListB->headerNode.pLink;
while( pNodeA != NULL && pNodeB != NULL )
{
if( pNodeA->degree > pNodeB->degree )
{
addPolyNodeLast(pReturn, pNodeA->coef, pNodeA->degree);
pNodeA = pNodeA->pLink;
}
else if( pNodeA->degree < pNodeB->degree )
{
addPolyNodeLast(pReturn, (pNodeB->coef)*(-1), pNodeB->degree);
pNodeB = pNodeB->pLink;
}
else
{
addPolyNodeLast(pReturn, pNodeA->coef - pNodeB->coef, pNodeA->degree);
pNodeA = pNodeA->pLink;
pNodeB = pNodeB->pLink;
}
}
while( pNodeA != NULL )
{
addPolyNodeLast(pReturn, pNodeA->coef, pNodeA->degree);
pNodeA = pNodeA->pLink;
}
while( pNodeB != NULL)
{
addPolyNodeLast(pReturn, (pNodeB->coef)*(-1), pNodeB->degree);
pNodeB = pNodeB->pLink;
}
}
return pReturn;
}
6. 희소 행렬의 전치행렬을 구하는 함수를 구현해 보세요.
-> 진행중....