๐ก ์ด๋ฒ์๋ ํฌ์ธํฐ ๊ธฐ๋ฐ ๋ฆฌ์คํธ ์๊ณ ๋ฆฌ์ฆ์ ํน์ ์์๋ฅผ ์ญ์ ํ๋ ๋ฐฉ๋ฒ์ ํฌ์คํ ํด๋ณด๋ ค๊ณ ํ๋ค.
๋ฌธ์
๐ก ๋ฐฐ์ด [1, 2]์์ ๋ฐฐ์ด [2]๋ก ์์๋ฅผ ์ญ์ ํ์์ค.
๋น์ฐํ ์๋ ๋ฌธ์ ๊ธฐ์ ๋์ถฉ ๋ด๊ฐ ๋ง๋ค์๋ค.
ํด๋ต
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node *next;
} Node;
Node *head;
// ์์ ์ญ์ ํจ์
void removeFront(Node *root) {
Node *front = root->next;
root->next = front->next;
free(front);
}
int main(void) {
head = (Node*) malloc(sizeof(Node));
Node *node1 = (Node*) malloc(sizeof(Node));
node1->data = 1;
Node *node2 = (Node*) malloc(sizeof(Node));
node2->data = 2;
head->next = node1;
node1->next = node2;
node2->next = NULL;
removeFront(head); // ์์ ์ญ์ ํจ์
Node *cur = head->next;
while (cur != NULL) {
printf("%d ", cur->data);
cur = cur->next;
}
return 0;
}
[C์ธ์ด ํฌ์ธํฐ ๊ธฐ๋ฐ ๋ฆฌ์คํธ ์๊ณ ๋ฆฌ์ฆ] ๋จ์ผ ์ฐ๊ฒฐ ๋ฆฌ์คํธ ํฌ์คํ ์์ ์ค๋ช ํ ๋ถ๋ถ์ ๋ฐ๋ก ์ด๋ฒ ํฌ์คํ ์์๋ ์ธ๊ธํ์ง ์๊ฒ ๋ค.
์ค๋ช
์์ ์ญ์ ํจ์๋ฅผ ์ค๋ช ํ๋ฉด ์๋์ ๊ฐ๋ค.
๋๋ head ๋ค์์ ์์๋ฅผ ์ญ์ ํ๊ณ ์ถ๋ค.
void removeFront(Node *head) {
Node *front = head->next; // front๋ head๊ฐ ๊ฐ๋ฆฌํค๊ณ ์๋ 1์ด๋ค.
head->next = front->next; // head์ next๋ฅผ 1์ด ๊ฐ๋ฆฌํค๊ณ ์๋ 2๋ก ๋ณ๊ฒฝํ๋ค.
free(front); // 1์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ํด์ ํด์ค๋ค.
}
๋ง์น๋ฉฐ..
์์ ์ฝ์ ๋ณด๋ค ํด์ ๊ฐ ๋ ์ฝ๋๊ฐ ๊ฐ๋จํ ๊ฒ์ ๋ณผ ์ ์๋ค.
ํฌ์ธํฐ๋ฅผ ์ ํ์ฉํ๋ฉด ์ฌ์ด ์ฝ๋๋ฅผ ๋ง๋ค ์ ์์ ๊ฒ ๊ฐ๋ค๋ ๋๋์ด ์ ์ ๋ ๋ค..