사이드바 열기

node  *init_node( void )
{
    head node 선언 및 할당
    head node 할당 실패 시
    에러처리
    tail node의 선언 및 할당
    tail node 할당 실패 시
    head 할당해제
    에러처리
    head와 tail 연결 및 tail next 처리
    head 주소 값 반환
}

    성공시
        head 주소 반환
    실패시
        NULL 반환
    인자값
        없음.

tail->next의 처리는 3가지정도의 방법이 있다.
    1. 자기자신을 가르키게 하는경우
    2. head를 가르키게 하는경우
    3. NULL을 가르키게 하는 경우

일단 NULL을 가르키게 하는 방식으로 code 를 작성.



node *delete_all( node *head )
{
    순회노드 선언 및 head노드 다음으로 설정
    해제노드 선언
    순회노드가 tail에 이를 때까지 반복
    해제노드는 순회노드로 설정
    순회노드는 다음노드로 설정
    해제노드 할당해제
    head노드 다음노드를 tail(순회노드)로 설정
    head노드 주소값 리턴
}

    성공시
        head 주소값 반환
    실패시
        NULL 반환
    인자
        head : head 주소



node *find_key( node *head, int s_key )
{
    탐색노드 선언 및 head->next로 설정
    탐색노드가 key값을 찾거나 꼬리에 이를때까지 반복
    다음노드로 이동
    if( key값을 찾았을경우 )
        현재위치의 탐색노드 주소 반환
    else if( 꼬리일경우 )
        NULL 반환
}  

 

    성공시
        현재위치의 탐색노드주소 반환
    실패시
        NULL 반환
    인자값
        head : head 주소값
        s_key : 찾을 key값

Posted by LaLuna
위로

사이드바 열기