#include <stdio.h>
typedef int element;
typedef struct tagNode {
element Data;
struct tagNode* NextNode;
}Node;
Node* SLL_CreateNode(element NewData)
{
Node* NewNode = (Node*)malloc(sizeof(Node));
NewNode->Data = NewData;
NewNode->NextNode = NULL;
return NewNode;
}
void SLL_DestoryNode(Node* Node)
{
free(Node);
}
void SLL_AppendNode(Node** Head, Node* NewNode)
{
if ((*Head) == NULL)
{
*Head = NewNode;
}
else
{
Node* Tail = (*Head);
while (Tail->NextNode != NULL)
{
Tail = Tail->NextNode;
}
Tail->NextNode = NewNode;
}
}
int main()
{
Node* List = NULL;
Node* NewNode = NULL;
NewNode = SLL_CreateNode(117);
SLL_AppendNode(&List, NewNode);
NewNode = SLL_CreateNode(119);
SLL_AppendNode(&List, NewNode);
return 0;
}
도저히 뭐가 잘못된건지 모르겠습니다
그리고 Append함수 이해가 안가네요 while()구문이..
해당 댓글은 삭제되었습니다.
공부용으로 감사해요 근데 지금 문제를 외면하고 지나갈순 없어요.. ㅠㅠ 혼자 끙끙앓는데도 답이 안나와요 ㅠㅠ
안나요?? 뭐지;;.. 암튼 알겠어요 감사요!
껐다켜서 된건지 #include 추가해서 된건지 모르겠지만 아무튼 해결했습니다 감사합니다
stdlib.h
아 while()구문 대충 이해한듯해요 NextNode가 Null 이 아닌값일때마다 NextNode를 저장해서 다음 노드로 넘겨서 Null 값이나온 마지막 노드가 될때 구문을 빠져나가서 Tail->NextNode 에다가 새로운 노드를 붙이는거네요