◀ 74.5 연습문제: 특정 노드 검색하기핵심 정리
, 이 영건님이 작성#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> struct NODE { struct NODE *next; int data; }; void addFirst(struct NODE *target, int data) { struct NODE *newNode = malloc(sizeof(struct NODE)); newNode->next = target->next; newNode->data = data; target->next = newNode; } void removeNode(struct NODE *node, int data) { ______________________________________ ______________________________________ ______________________________________ ______________________________________ ______________________________________ ______________________________________ ______________________________________ ______________________________________ ______________________________________ ______________________________________ ______________________________________ ______________________________________ ______________________________________ } int main() { int numArr[10] = { 0, }; int removeNum; scanf("%d %d %d %d %d %d %d %d %d %d", &numArr[0], &numArr[1], &numArr[2], &numArr[3], &numArr[4], &numArr[5], &numArr[6], &numArr[7], &numArr[8], &numArr[9] ); scanf("%d", &removeNum); struct NODE *head = malloc(sizeof(struct NODE)); head->next = NULL; for (int i = 0; i < 10; i++) { addFirst(head, numArr[i]); } removeNode(head, removeNum); struct NODE *curr = head->next; while (curr != NULL) { printf("%d ", curr->data); curr = curr->next; } curr = head->next; while (curr != NULL) { struct NODE *next = curr->next; free(curr); curr = next; } free(head); return 0; }
감이 잡히질 않아 힌트를 받으려고 합니다 ㅠㅠㅠ 늦은밤 죄송합니다.... 이번과목 정말 어렵네요ㅠㅠㅠㅠㅠ
회신: ◀ 74.5 연습문제: 특정 노드 검색하기핵심 정리
, 도장_ 관리자님이 작성Unit 74.3의 노드 삭제 함수를 응용하는 문제입니다.
removeFirst 함수가 첫 번째만 삭제한다면 removeNode는 원하는 노드를 찾아서 삭제하는 코드입니다.
노드를 탐색하는 부분은 Unit 74.1의 linked_list_two_nodes.c의 루프를 참고하면 됩니다.
자료 구조에 해당하는 부분이므로 난이도가 있고, 허들을 느끼는 부분입니다. 자료 구조, 알고리즘에서 허들을 느끼지만, 반복 학습하고 연결 리스트는 암기해서 자동으로 코드를 짤 정도가 되면 됩니다.(코딩 면접에서 요구하는 수준이기도 하고, 연결 리스트를 예제로만 보고 암기해서 칠판이나 종이에 코딩하는 걸 못해서 신입 코딩 면접에서 떨어지기도 합니다)
허들은 있지만, 많이 보고, 메모장만 있어도 코딩할 정도가 되게 하세요.