초간단 전방 삽입, 삭제 연결리스트인데요, 지적부탁드립니다.
가루
#includestdio.h
#includestdlib.h
typedef struct Listnode
{
int data;
struct Listnode *link;
}List;
void insert_f(List **head, int value);
void delete_f(List **head, List *remove);
void print_f(List *head);
void main()
{
List *head = NULL;
int num, insert_value;
while(1)
{
printf(\n);
printf(전방삽입은 1과 삽입할 정수값, 전방삭제는 2를 두번입력 : );
scanf(%d %d, &num, &insert_value);
if(num == 1)
{
insert_f(&head, insert_value);
print_f(head);
}
if(num == 2)
{
delete_f(&head, head);
print_f(head);
}
}
}
void insert_f(List **head, int value)
{
List *insert_node;
insert_node = (List *)malloc(sizeof(List));
insert_node - data = value;
insert_node - link = *head;
*head = insert_node;
}
void delete_f(List **head, List *remove)
{
if(*head == NULL)
{
printf(삭제할 노드가 없습니다);
}
else
{
remove = remove - link; // 콜바이 밸류
*head = remove; // 콜바이레퍼런스
}
}
void print_f(List *head)
{
while(head != NULL)
{
printf(%d - , head - data);
head = head - link;
}
}
소스에서 고치면 좀 더 나을 부분하고 삭제 부분에서 제가 단 주석이 맞죠?
free로 남는 노드를 삭제해야 할것 같은데 어떻게 해야할지 지적좀 부탁드립니다.
-
단화한
혹~ 그러고보니 연결리스트를 가장한 스택이군요...;;
출력문 printf에서 - 지우고 \\n 넣어보니깐 스택같은 UI가 나오네요....;; -
한내
감사합니다.