Contents

조회 수 9841 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

# 간단한 링크드 리스트 자료형 예제

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; 
}


?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
1161 Develop GCM 사용하기 3 (JSP로 GCM 푸시 서버 만들기) 4 file hooni 2013.07.06 25316
1160 Develop git 브런치 배우기 (링크) hooni 2013.07.09 20571
1159 Develop GPL, AGPL, MPL,.. 한눈에 보는 오픈소스SW 라이선스 file hooni 2014.10.14 1146
1158 Etc GSM에서 음성이 실리는 과정 요약.. hooni 2013.04.23 17518
1157 Etc How to completely Uninstall Coda hooni 2017.10.24 2199
1156 System/OS How to Install and Use wget on Mac file hooni 2020.09.03 1291
1155 System/OS How to Setup an Email Server on CentOS 7 hooni 2018.04.05 2792
1154 Develop How to Test SMTP AUTH using Telnet hooni 2018.04.05 1345
1153 System/OS HTTP 프로토콜 (브라우저와 웹서버 간의 통신) hooni 2003.04.23 48251
1152 System/OS HTTPS와 SSL 인증서 file hooni 2014.03.11 7548
1151 Etc iOS 에서 쓸만한 오프라인 구글지도 찾기 hooni 2014.01.06 16039
1150 Etc IoT가 만드는 미래와 플랫폼 경쟁력 secret hooni 2014.09.23 0
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 98 Next
/ 98