Develop
2003.04.23 09:45
[c] 간단한 링크드 리스트(linked list) 자료형 예제..
조회 수 12000 댓글 0
# 간단한 링크드 리스트 자료형 예제
typedef struct {
int index;
char name[10];
char sex;
int age;
char mail[50];
char phone[15];
char address[128];
}USER_INFO;
typedef struct list_node *list_ptr;
typedef struct list_node {
USER_INFO user_info;
list_ptr next;
}LIST_NODE;
list_ptr first=NULL;
unsigned long list_cnt=0;
list_ptr find_list_ptr(int node)
{
unsigned long i;
list_ptr tmp=first;
if( node > list_cnt )
node = list_cnt;
if( tmp == NULL )
return NULL;
for( i=1 ; i<node ; i++ )
{
tmp = tmp->next;
}
return tmp;
}
// add list to end of list
void add_list()
{
list_ptr tmp, end;
tmp = (list_ptr)malloc( sizeof(LIST_NODE) );
tmp->next = NULL;
if( list_cnt == 0 )
{
first = tmp;
}
else
{
end = find_list_ptr( list_cnt );
end->next = tmp;
}
list_cnt++;
}
void insert_list(unsigned long node)
{
list_ptr tmp, node_ptr,node_next_ptr ;
tmp = (list_ptr)malloc( sizeof(LIST_NODE) );
tmp->next=NULL;
if( node >= list_cnt)
{
add_list();
return;
}
node_ptr = find_list_ptr(node);
node_next_ptr = node_ptr->next;
node_ptr->next = tmp;
tmp->next = node_next_ptr;
list_cnt++;
}
void Del_list()
{
unsigned long i;
list_ptr tmp = first;
list_ptr tmp_next;
for( i=0 ; i<list_cnt; i++ )
{
if( tmp->next != NULL)
{
tmp_next = tmp->next;
free(tmp);
tmp = tmp_next;
}
else
{
if( tmp != NULL )
free(tmp);
}
}
list_cnt = 0;
}-
Read More
[sql] 간단한 SQL 문법 정리
-
Read More
[c] 간단한 채팅(클라이언트/서버) 프로그램 소스
-
Read More
[c] 팩토리얼.. - 재귀함수
-
Read More
[c] 하노이탑 - 재귀함수
-
Read More
[c] 소수점 반올림^^
-
Read More
[c] 최대공약수 알고리즘 (유클릿)
-
Read More
[php] whois정보 조회 프로그램
-
Read More
[c] 간단한 링크드 리스트(linked list) 자료형 예제..
-
Read More
[c] CGI Library to C^^
-
Read More
[c] scanf(), printf() 포맷의 형변환
-
Read More
[c] home env stack overflow
-
Read More
[c] 파일입출력 간단한 설명