자료구조(알고리즘 c++) 다항식 생성, 다항식 덧셈 ,다항식 곱셈 with C++
- 최초 등록일
- 2011.02.23
- 최종 저작일
- 2011.04
- 15페이지/ 압축파일
- 가격 2,500원
소개글
○ 지수와 계수를 입력 받아 다항식을 생성한다.
○ 다항식끼리 덧셈 연산을 할 수 있다.
○ 다항식 끼리 곱셈 연산을 할 수 있다.
목차
□ 문제의 개요
□ 문제 분석 및 알고리즘
□ 소스 및 주석
□ 실행 화면 CAPTURE
□ 느낀점
본문내용
○ 알고리즘
- 기억 공간을 최대한 효율적으로 사용하기 위해 링크드 리스트를 이용해서 구현 해보았습니다.
- 계수가 ‘0’이 아닌 항에 한하여 각 노드에 해당 항의 계수와 지수를 저장합니다.
* 노드를 하나씩 생성해가면서 저장합니다
- 계수가 ‘0’이라면 더 이상 항을 입력 받지 않습니다.
- 덧셈함수에서 각 다항식의 첫째 항의 지수를 비교 해 나갑니다.
a. 지수가 같다면 두 항의 계수를 더하여 결과 다항식의 노드에 저장합니다.
b. 지수가 다르다면 지수가 큰 항을 결과 다항식의 노드에 저장합니다.
- 각 항을 비교 해 나가면서 결과 노드에 내려쓴 항은 다음 노드가 다음번 비교대상이 됩니다.
- 둘중 어느 항이라도 모든 항이 비교가 완료되면, 더 이상 비교를 하지 않고 남은 항들을 전부 결과 노드에
기록합니다.
- 곱셈함수에서는 각 다항식의 항끼리 카티션 프로덕트 합니다.
a. 첫 다항식을 기준으로 두 번째 다항식의 모든 항끼리 계수는 곱하고 지수는 더하여 결과 노드에 저장
해 나갑니다.
b. 연산을 한 값의 지수가 결과 노드에 저장되어 있는 값의 항과 지수가 같다면 노드를 추가 하지 않고
기존 노드의 해당 항의 계수에 연산한 값을 더하여 줍니다.
c. 모든 항끼리의 연산이 완료되면 결과 노드를 출력하여 줍니다.
- 사용자가 입력한 x 값을 이용해 최종 연산을 한다.
a. x를 각항의 지수 값만큼 곱한다. x가 음수일 경우 지수만큼 나눕니다.
b. 각항의 계수와 곱한다.
c. 결과값을 모두 더한다.
* Full 소스 생략 (본문에 있음)
참고 자료
없음
압축파일 내 파일목록
poly.h
poly_main.cpp
다항식.hwp
controller.cpp
controller.h
node.h