728x90
반응형
2022.02.22 최초 작성
#include<stdio.h>
#include<stdlib.h>
typedef struct Node{
int data;
struct Node* next;
} Node;
Node* head = NULL;
Node* tail = NULL;
Node* cur = NULL;
void printLinkedList(Node* head) {
printf("연결리스트 출력 : ");
cur = head;
while (cur != NULL)
{
printf("%d", cur->data);
cur = cur->next;
if (cur != NULL)
printf("->");
}
puts("");
}
void addNode() {
while (1)
{
int item;
printf("연결할 정수를 입력하세요. ");
scanf("%d", &item);
if (item <= 0)
break;
Node* newnode = (Node*)malloc(sizeof(Node));
newnode->data = item;
newnode->next = NULL;
if (head == NULL)
head = newnode;
else
tail->next = newnode;
tail = newnode;
}
}
void deleteNode() {
while (1)
{
int k;
printf("삭제할 정수를 입력하세요. ");
scanf("%d", &k);
if (k <= 0)
break;
int isSearch = 0;
Node* cur_prev = NULL;
cur = head;
while (cur != NULL)
{
if (cur->data == k)
{
isSearch = 1;
break;
}
cur_prev = cur;
cur = cur->next;
}
if (isSearch){
printf("%d를 삭제합니다.\n", k);
if (cur == head)
head = cur->next;
else
cur_prev->next = cur->next;
free(cur);
}
else{
printf("%d를 찾을 수 없습니다.\n", k);
}
}
}
int main()
{
addNode();
printLinkedList(head);
deleteNode();
printLinkedList(head);
}
[실행 결과]
연결할 정수를 입력하세요. 1
연결할 정수를 입력하세요. 2
연결할 정수를 입력하세요. 3
연결할 정수를 입력하세요. 4
연결할 정수를 입력하세요. 5
연결할 정수를 입력하세요. 6
연결할 정수를 입력하세요. 7
연결할 정수를 입력하세요. 8
연결할 정수를 입력하세요. 9
연결할 정수를 입력하세요. 0
연결리스트 출력 : 1->2->3->4->5->6->7->8->9
삭제할 정수를 입력하세요. 4
4를 삭제합니다.
삭제할 정수를 입력하세요. 8
8를 삭제합니다.
삭제할 정수를 입력하세요. 0
연결리스트 출력 : 1->2->3->5->6->7->9
728x90
반응형
728x90
반응형
'프로그래밍 > C' 카테고리의 다른 글
큐 C언어 코드 (0) | 2023.02.22 |
---|---|
원형 큐 C언어 코드 (0) | 2023.02.22 |
스택 C언어 코드 (0) | 2023.02.21 |
버블 정렬 C언어 코드 (0) | 2023.02.16 |
선택 정렬 C언어 코드 (0) | 2023.02.16 |