#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
typedef struct node {
int data;
struct node* next;
} node_type;
node_type* create_node(int data)
{
node_type* node = (node_type*)malloc(sizeof(node_type));
if (node != NULL) {
node->data = data;
node->next = NULL;
}
return node;
}
node_type* preceding_node(node_type* head, int data)
{
node_type* x = NULL;
node_type* ptr;
for (ptr = head; ptr != NULL; ptr = ptr->next) {
if (ptr->data < data)
x = ptr;
else
break;
}
return x;
}
node_type* insert_sorted(node_type** head, int data)
{
node_type* x = preceding_node(*head, data);
node_type* newnode = create_node(data);
if (!newnode) return NULL;
if (x == NULL) {
newnode->next = *head;
*head = newnode;
}
else {
newnode->next = x->next;
x->next = newnode;
}
return newnode;
}
void print_list(node_type* head)
{
for (; head; head = head->next)
printf("%d->", head->data);
printf("NULL\n");
}
void delete_all(node_type** head)
{
node_type* ptr, * temp;
for (ptr = *head; ptr; ptr = temp) {
temp = ptr->next;
free(ptr);
}
*head = NULL;
}
int main(int argc, char* argv[])
{
node_type* head = NULL;
int i, value;
for (i = 1; i < argc; i++) {
sscanf(argv[i], "%d", &value);
insert_sorted(&head, value);
}
print_list(head);
delete_all(&head);
return 0;
}
이번 학기 마지막 퀴즈입니다. 수고하셨습니다.
'코딩 프로젝트 > ANSI C' 카테고리의 다른 글
| [C언어기초] 11/25 Quiz Solution (0) | 2025.11.20 |
|---|---|
| [C언어기초] 11/11 Quiz Solution (0) | 2025.11.11 |
| [C언어기초] 11/4 Quiz Solution (0) | 2025.11.04 |
| [ANSI C/바이브 코딩] 오디오 이퀄라이저 (0) | 2025.10.31 |