반응형
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. 연결 리스트에서 노드의 삽입과 삭제
연결 리스트에서 노드의 삭제
- 연결 리스트의 초기 모습
- 연결 리스트의 삭제 결과
- 리스트의 원소 삭제 연산 단계
① 삭제할 노드의 선행 노드의 링크 필드를 삭제할 노드의 후행 노드를 가리키게 한다.
② 삭제할 노드를 메모리에 반환한다.
연결 리스트에서 노드의 삽입
- 연결 리스트의 초기 모습
- 연결 리스트의 삽입 노드
- 리스트의 원소 삽입 연산 단계
① 메모리 공간을 할당받고 삽입할 내용을 저장하여 삽입할 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 |