반응형
SMALL

03. 포인터를 이용한 리스트의 구현

노드의 구조

- 노드(node) : 리스트의 원소(값) + 다음 원소를 가리키는 정보

- 노드는 데이터 요서(원소, 값)와 리스트의 다음 원소를 지시하는 포인터(주소, 링크(link)로 구성됨

 

 

 

04. 포인터 변수 및 리스트의 삭제/삽입

리스트의 생성

- 정수값 data와 링크 link 로 구성된 노드의 생성 

 

 

 

struct linked_list_node {
int data;
struct linked_list_node *link;
};

 

- 포인터의 할당과 반환 예

int a, *p_a;
float b, *p_b;
p_a = (int *)malloc(sizeof(int));
p_b = (float *)malloc(sizeof(float)); *p_a = 10; *p_b = 3.14;
printf("a is %d, b is %f\n",*p_a, *p_b);
free(p_a);
free(p_b);

- 포인터의 할당과 반환의 실행 결과

 

 

 

 

05. 연결 리스트에서 노드의 삽입과 삭제

연결 리스트에서 노드의 삭제

- 연결 리스트의 초기 모습

- 연결 리스트의 삭제 결과

data 200 을 삭제한다

- 리스트의 원소 삭제 연산 단계

① 삭제할 노드의 선행 노드의 링크 필드를 삭제할 노드의 후행 노드를 가리키게 한다.

② 삭제할 노드를 메모리에 반환한다.

 

 

연결 리스트에서 노드의 삽입

- 연결 리스트의 초기 모습

- 연결 리스트의 삽입 노드

- 리스트의 원소 삽입 연산 단계

① 메모리 공간을 할당받고 삽입할 내용을 저장하여 삽입할 x노드를 생성합니다.

② x노드의 링크부분이 후행 노드가 될 j노드를 가리키게 합니다.

③ 삽입될 x노드의 선행 노드가 될 i 노드의 링크 필드가 x노드를 가리키게 합니다.

 

반응형
LIST

'방송통신대학 > 자료구조' 카테고리의 다른 글

B-Tree , B* Tree , B+ Tree 설명, 비교  (0) 2020.11.25
5-3. 연결 리스트에서노드의삽입과 삭제  (0) 2020.11.25
5-1 연결리스트  (0) 2020.11.23
배열을 이용한 큐queue 의 구현  (0) 2020.09.17
큐 Queue  (0) 2020.09.16

+ Recent posts