숫자를 삽입하고
삭제하고 출력을 구현하려고하는데
컴파일하면 에러가 안뜨는데 실행도중
삽입을 누르고 삽입할 숫자를 정하고 엔터키를 누르니
오류가 뜹니다 왜그런지 모르겠습니다 ㅜ 며칠째 이것만 잡고 헤매고 있습니다
도움 부탁드립니다.
p.s 지금 구현한건 1번 삽입 뿐입니다
2번의 중간에 삽입하는거는 어떤씩으로 해야하는지 조언 부탁드릴게요
#include<stdio.h>
#include<stdlib.h>
typedef struct ListNode{
int data;
struct ListNode *link;
}ListNode;
ListNode *head;
ListNode *phead;
ListNode *new_node;
void insert_node(ListNode *phead, int data2, ListNode *new_node);
void print();
int main()
{
int num;
int data2;
head=(ListNode *)malloc(sizeof(ListNode));
head->link=NULL;
phead = head;
new_node = (ListNode *)malloc(sizeof(ListNode));
printf("************************\n");
printf("현재 단순연결리스트 출력\n\n");
printf("************************\n");
while(1)
{
printf("1. 숫자 삽입\n");
printf("2. 중간에 숫자 삽입\n");
printf("3. 숫자 삭제\n");
printf("4. 연결리스트 출력\n");
printf("5. 종료\n");
printf("번호를 선택하세요 : ");
scanf("%d",&num);
if(num==1){
printf("삽입 숫자를 입력해주세요 : ");
scanf("%d",&data2);
insert_node(phead, data2, new_node);
}
}
}
void insert_node(ListNode *phead, int data2, ListNode *new_node)
{
if(phead == NULL){
new_node->link = NULL;
new_node->data = data2;
phead = new_node;
}
else{
new_node->link=NULL;
new_node->data=data2;
phead=new_node;
}
printf("\n\n---------------------------------------------------");
printf("\n현재까지 입력된 숫자는\n");
while(phead != NULL)
{
printf("%d \t",phead->link->data);
phead=phead->link;
printf("\n\n---------------------------------------------------\n");
}
}
|