#include
#include
typedef struct ListNode {
int data;
struct ListNode *link;
}ListNode;
void display(ListNode *h)
{
while (h != NULL) {
printf("%d ", h->data);
h = h->link;
}
printf("\n");
}
void insert_node(ListNode **phead, ListNode *p, ListNode *new_node)
{
if (*phead == NULL) {
new_node->link = NULL;
*phead = new_node;
}
else if (p == NULL)
{
new_node->link = *phead;
*phead = new_node;
}
else
{
new_node->link = p->link;
p->link = new_node;
}
}
int main()
{
ListNode *head = NULL;
ListNode *p, *new_node;
int data;
p = head;
do {
scanf_s("%d", &data);
if (data == -1) break;
new_node = (ListNode*)malloc(sizeof(ListNode));
new_node->data = data;
insert_node(&head, ///////////, new_node);
} while (1);
display(head);
}
/////////// 여기에 뭐 넣어야 함
p가 NULL일땐 맨 앞에다, p의 값이 있을땐 p 뒤에다 노드 붙이는 코드같은데
너가 짠 코드 아님?
교수진 사마의 과제에요
아무튼 저 함수에 입력을 뭘 줘야하는지...
NULL로 설정하면 새로운 노드를 계속 앞에 붙이면서 돌아가긴할듯 근데 p 위치를 계속 바꿔주면 모르겠는데 p값은 그대로라 왜 변수 선언한건지 몰겠음ㄷㄷ
암것도 출력이 안대여
?? 숫자치고 엔터치고 반복하다가 -1 치면 넣었던거 쭉 나오는 코드인데..
그리고 여기에 코드 복붙하면 지워지는 부분이 많아서 스크린샷이 더 정확해요
아 이거 나오긴 하는데 왜 거꾸로 나오지;;
넣은 순서대로 출력할려면 코드 좀 바꿔야함
변수명은 연결리스트같은데 구조는 스택이네 나온 순서대로 출력하고 싶으면 head 를 고정시키고 추가되는 공간을 참조하게 바꾸셈
P 넣어봤음? 헤드는 시작주소 가리키는거고 P는 꼬리 가리키는거고 new들어가면서 P링크에 new넣고 new링크에 헤드 연결하고..