평범한 이야기들

Simple Linked List - C 본문

평범한 개발 이야기/ETC

Simple Linked List - C

songsariya 2008. 6. 19. 00:45
728x90
Simple Linked List-

자료구조에서 배우는 한 알고리즘이다.
링크드리스트는 말그대로 자료들이 쭈우우우우~~~욱 연결된 집단(?- 뭐라표현해야되지-_ㅠ)
링크드리스트를 구현할때에는 배열 또는 동적메모리할당을 받아서 만들수 있으며
나 역시 동적 메모리를 할당 받아서 만들었다.

링크드 리스트 구성시 필요한 것을 생각해봤다.
1. 입력
2. 삭제
3. 출력


그리고 부수적으로 필요한 것. (배열보단 동적메모리 할당으로 해야지 유연해지니깐.)
1. 생상자 (메모리 할당)
2. 소멸자 (메모리 해제)


링크드 리스트에서 자료를 저장할 구조체는 연습삼아 만드는것이기때문에

typedef struct _node{

 int value;
 struct _node *next;

}node;


구조체로써 자료를 저장할 수 있는 int형 하나.
다음 자료의 주소를 저장할수 있는 node 포인터형 하나.
(node형이란것은 없지만 typedef로 정의를 했기때문에 가능하다.)

모든 곳에서 쓰일수 있는 전역변수 2개
자료의 첫번째와 마지막을 향하고 있는 node 포인터형 head, tail
node * head;
node * tail;


링크드리스트에서 쓰인 함수

int init_list(); //초기화 기본적인 메모리 할당을 한다.
int insert_last(int); //자료값을 넣는 함수로써 맨 마지막 뒤에다 넣는다.
int delete_node(int); //자료값을 찾아서 삭제한다. 같은 자료가 많다면 맨 처음 자료부터 삭제.
int print_list();  //링크드리스트를 출력
int end_list();  //소멸자. 할당된 메모리를 해제한다.

함수 구현



-아직은 지저분한 소스코드이다.
 주석도 많이 안했으며 
 역시 계속 느끼는건 전체적으로 지저분한 소스코드.
 이게 정답인거 같다. 깔끔하게 코딩하는것도 배워야 겠다. 아직은 부족한 나-

728x90
Comments