다항식(리스트)
본 자료는 2페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
해당 자료는 2페이지 까지만 미리보기를 제공합니다.
2페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

■ 문제개요

■ 문제분석 및 해결방법

■ 소스코드 및 주석

■ 실행화면

■ 느낀점

본문내용

;
p = song1.headnode();
p = song1.headnode2();
q = song2.headnode();
q = song2.headnode2();
while(1)
switch(x.Compare(p->exp, q->exp)) //지수비교
{
case '=':
if(p->exp == -1) //지수에아무것도업을때
return c;
else{
int sum = p->coef + q->coef; //지수합
if(sum){
temp.Init(sum, q->exp);
c.poly.Plusnode(temp);
}
p = song1.headnode2();
q = song2.headnode2();
}
break
case '<': //한쪽의지수가더클경우
temp.Init(q->coef, q->exp);
c.poly.Plusnode(temp);
q = song2.headnode2();
break
case '>': //다른쪽의지수가더클경우
temp.Init(p->coef, p->exp);
c.poly.Plusnode(temp);
p = song1.headnode2();
}
}
Link_poly operator*(const Link_poly& a, const Link_poly& b) //다항식의곱셈
{
Term *p, *q, temp;
poly_link song1(a.poly); //반복자
poly_link song2(b.poly);
Link_poly c;
p = song1.headnode();
p = song1.headnode2();
q = song2.headnode();
q = song2.headnode2();
for(; p->exp!=-1; p=song1.headnode2()) //헤드노드까지
{
for(; q->exp!=-1; q=song2.headnode2()) //두번째다항식의헤드노드까지
{
int Coef = p->coef * q->coef; //계수곱셈
int Exp = p->exp + q->exp; //지수덧셈
temp.Init(Coef, Exp);
c.poly.Plusnode(temp); //추가
}
q = song2.headnode();
q = song2.headnode2();
}
return c;
}
■ 실행화면
■ 느낀점
이번과제는 예전에 배열로 작성하였던 다항식을 연결리스트를 이용해 나타내는 과제였다. 처음 연결리스트를 배울때는 개념이해가 잘 되었으나, 막상 이를 실전에서 이용할려고 하니 많이 어려웠다. 책에 나와있는 코드를 3시간이 넘도록 분석을 하니 어느정도 감이 잡혔다. 다항식을 입력을 받는 것은 의외로 쉽게 할수 있었지만, 헤드노드를 이용해 다시 맨 앞으로 돌리는 부분에서 많이 헤매었다. 게다가 오버로딩 부분을 아직 100% 이해하는 것이 아니라서 그 부분에 많은 시간을 빼앗겼고, 다른 자료를 여럿 찾아본 뒤에야 구현할수 있었다. 코딩을 할 때 매번 느끼는 거지만, 수업시간에 이해하는것과 내가 직접 응용하는 것이 얼마나 어려운가를 새삼 깨달을수 있던 과제였다.

키워드

c++,   자료구조,   다항식,   리스트,   연결
  • 가격1,500
  • 페이지수7페이지
  • 등록일2011.12.19
  • 저작시기2011.11
  • 파일형식한글(hwp)
  • 자료번호#721825
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니