반응형
C언어 링크드리스트 예제
◆ 링크드 리스트 추가, 삭제, 프린트, 메모리 해제 ◆
링크드리스트
아직은 딱히 설명은 없다.
다만 참고하고 기억하려고 글을 적어둔다.
나중에 정렬부분이 다 끝나고 한번 제대로 적을 예정이다.
아래의 코드에서는 링크드리스트 추가, 삭제, 보여주는 부분을 구현해놓았고, 제일 마지막에는 만든 링크드리스트를 전부 메모리 해제하는 것을 구현을 해두었다.
#pragma warning(disable: 4996)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct NODE{
struct NODE *next;
int data;
}node;
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 removeFirst(struct NODE *target)
{
struct NODE *removenode = target->next;
target->next = removenode->next;
free(removenode);
}
int main()
{
struct NODE *head = malloc(sizeof(struct NODE));
head->next = NULL;
/*추가하는 함수*/
addFirst(head, 10);
addFirst(head, 20);
/*사제하는 함수*/
removeFirst(head);
/*프린트 해주는 curr*/
struct NODE *curr = head->next;
while (curr != NULL)
{
printf("[%d] %d \n",(int *)curr->next, curr->data);
curr = curr->next;
}
/*끝에서부터 메모리 해제해주는 부분*/
curr = head->next;
while (curr != NULL)
{
struct NODE *next = curr->next;
free(curr);
curr = next;
}
free(head);
return 0;
}
반응형
'notion > Other_info' 카테고리의 다른 글
구글 무료 폰트 사용해보기 (0) | 2021.02.25 |
---|---|
Window 10 경고음 없애기 (0) | 2021.02.15 |
C언어 링크드리스트 예제 (0) | 2021.01.29 |
Virtual Machine - VMware CentOS 7 전체화면 만들기 (0) | 2021.01.28 |
ODBC란? [Open Database Connectivitiy] (0) | 2021.01.28 |
Notepad++ 설치 (0) | 2021.01.28 |
댓글0