일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- postorder
- pycharm
- CES 2O21 참여
- tensorflow
- discrete_scatter
- 자료구조
- 데이터전문기관
- 웹 용어
- KNeighborsClassifier
- classification
- inorder
- mglearn
- web 사진
- cudnn
- paragraph
- Keras
- vscode
- web 개발
- web
- 머신러닝
- html
- web 용어
- broscoding
- 결합전문기관
- C언어
- 대이터
- bccard
- CES 2O21 참가
- 재귀함수
- java역사
- Today
- Total
bro's coding
datastructure.Linked list(다항식 덧셈) in C 본문
1. node구조 정의
-struct Node* link : 다음 연결 될(된)노드의 주소를 저장하기 위함
2. head(first)구조 정의
Linked list를 이용 할 때, 시작점을 찾기 위함
3. head(first) reset
head(first/시작점)를 비우는 function
4. list 생성
1. newNode를 생성
2. newNode에 coef와 expo값을 assign
3. link(next)값을 비움(NULL은 종료의 의미로 사용됨)
조건문
if(head가 비어있다면){
head에 방금 만들어진 newNode를 assign하고 종료
}
else(그렇지 않다면){
임시로 만들어 놓은 P에 head를 assign
while(link가 NULL이 될 때 까지 반복){
P에다 P다음거를 assign(다음게 없을 때 까지(link==NULL))}
}
P의 link에(link가NULL인 상태) 방금 만든 newNode를 assign
}
5. 합 구하기
input받은 head를 함수 안의 Node변수 pA,pB에 assign
while(pA랑pB둘다 NULL이 되기 전 까지 반복){
if(pA의 지수와pB의 지수가 같다면){
sum에다 pA의 계수와 pB의 계수를 더해서 assign;
Node C에다 sum과 pA의 지수를 포함해 node 생성;
pA,pB에 그 다음 노드 assign;}
else if(pA의 지수가> pB의 지수보다 크다면){
Node C에다 pA의 계수와 pA의 지수를 포함해 node 생성;}
pA에 그 다음 노드 assign;
}
else(//pA의 지수가<pB의 지수보다 작다면){
Node C에다 pB의 계수와 pB의 지수를 포함해 node 생성;}
pB에 그 다음 노드 assign;
}
pA혹은 pB중 하나라도 먼저 끝나면 비교 할 수 없으니까 남은 node들 C에 assign
6. 프린트
input 받은 head를 P에 assign
for(p가 NULL이 될 때까지 p의 link에 다음 node를 넣어가면서 반복){
출력
if(다음에 이어질 노드가 있다면)
사이사이에 '+'넣기
7. main
A,B,C 각각의 head를 생성하고 각각의 head를 reset
A와 B 다항식을 입력 받음(-1,-1을 입력받으면 exit)
입력 받을 때 마다 노드 추가
결과 출력
'[IT] > [Data structure] in C' 카테고리의 다른 글
Tree and Queue(연산) in C (0) | 2019.10.12 |
---|