반응형
add_term
다항식 poly에 새로운 하나의 항을 추가하는 함수입니다.
두 가지 경우가 있습니다
- 추가하려는 항과 동일 차수의 항이 이미 있는 경우 : 기존 항의 계수만 변경
- 그렇지 않은 경우 : 새로운 항을 삽입(형들은 차수의 내림차순으로 항상 정렬 됨)
void add_term(Polynomial& poly, int c, int e)
{
if (c == 0)
return;
Term* p = poly.first, * q = nullptr;
while (p != nullptr && p->expo > e)
{
q = p;
p = p->next;
}
if (p != nullptr && p->expo == e)
{
p->coef += c;
if (p->coef == 0)
if (q == nullptr)
poly.first = p->next;
else
q->next = p->next;
poly.size--;
delete p;
}
return;
}
int main()
{
string command, arg1, arg2, arg3;
while(1)
{
cout << "$ ";
cin >> command;
if (command == "print")
{
cin >> arg1;
handle_print(arg1[0]);
}
else if (command == "calc")
{
cin >> arg1 >> arg2;
handle_calc(arg1[0], stoi(arg2));
}
else if (command == "define")
{
cin >> arg1;
Polynomial pol(arg1[0]);
insert_polynomial(pol);
}
else if (command == "add")
{
cin >> arg1 >> arg2 >> arg3;
handle_add(arg1[0], stoi(arg2), stoi(arg3));
}
else if (command == "exit")
break;
}
}
반응형
'IT 프로그래밍 > 자료구조' 카테고리의 다른 글
[자료구조] list 사용 예시 (0) | 2024.10.08 |
---|---|
[컴퓨터네트워크] part2 (0) | 2024.10.05 |
[자료구조] 다항식의 표현 (0) | 2024.10.01 |
[자료구조] 연결리스트 (0) | 2024.09.26 |
[자료구조] c++ 주소록 프로그램 (1) | 2024.09.21 |