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값
{
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값