본문 바로가기
notion/Other_info

C언어 링크드리스트 예제

by 서수이 서수이 2021. 1. 29.
반응형

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