반응형
01 (3)
02 삽입이나 삭제 연산을 하지 않는 나머지 데이터들을 전체적으로 한 칸씩 옮겨주어야 하므로
배열로 구현된 리스트가 가장 많이 실행시간이 소요된다. (1)
03, 04
ListNode *search(ListNode *L,element data){ //03
ListNode *temp = L->link;;
for(temp;temp != L;temp = temp->link){
if(temp->data == data){
return temp;
}
}
return NULL;
}
int get_size(ListNode* L){ //04
int count=1;
ListNode *temp = L->link;;
for(temp;temp != L;temp = temp->link){
count++;
}
return count;
}
int main(){
ListNode *head = NULL;
head = insert_last(head,20);
head = insert_last(head,30);
head = insert_last(head,40);
head = insert_first(head,10);
print_list(head);
printf("리스트에 %d개의 노드가 있습니다.\n",get_size(head));
ListNode* x = search(head,30);
if(x==NULL){
printf("찾는 값이 없습니다\n");
}
else{
printf("%d가(이) 리스트에 있습니다.\n",x->data);
}
return 0;
}
05 장: 선행 노드를 찾기 쉬워진다. 단: 공간을 많이 차지하고 코드가 복잡하다.
06 이중 연결 리스트 본문 코드 그대로 출력 시 역순 순회.
순서 바꾸고 싶으면 rlink를 llink로 대체.
07
DListNode* search(DListNode *L,element data){
DListNode *p;
DListNode *check = NULL;
for(p=L->rlink; p!=L; p = p->rlink){
if(p->data ==data){
check =p;
}
}
return check;
}
'CS > Data Structure' 카테고리의 다른 글
[C언어로 쉽게 풀어쓴 자료구조] Chapter8. 트리 (2) (1) | 2023.11.28 |
---|---|
[C언어로 쉽게 풀어쓴 자료구조] Chapter8. 트리 (1) (2) | 2023.11.25 |
[C언어로 쉽게 풀어쓴 자료구조] Chapter7. 연결 리스트 II (2) (0) | 2023.11.22 |
[C언어로 쉽게 풀어쓴 자료구조] Chapter7. 연결 리스트 II (1) (1) | 2023.11.22 |
[C언어로 쉽게 풀어쓴 자료구조] 연습문제 6강 (0) | 2023.11.19 |