반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

bro's coding

datastructure.Linked list(다항식 덧셈) in C 본문

[IT]/[Data structure] in C

datastructure.Linked list(다항식 덧셈) in C

givemebro 2019. 10. 7. 17:53
반응형

1. node구조 정의

node 구조 정의

-struct Node* link : 다음 연결 될(된)노드의 주소를 저장하기 위함

 

2. head(first)구조 정의

head(first)구조 정의

Linked list를 이용 할 때, 시작점을 찾기 위함

 

3. head(first) reset

head(first) reset

head(first/시작점)를 비우는 function

 

4. list 생성

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

head 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

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
Comments