struct Node
{
int Data; // 4
Node* pNext; // 5
}
struct LinkedList
{
Node* pHeadNode; // 1
int CurCount; // 2
// int MaxCount; // 3
};
void PushBack(LinkedList* _List, int _Data); // 6
#include <iostream>
#include "LinkedList.h"
// 13
void PushBack(LinkedList* _List, int _Data)
{
if (nullptr == _List->pHeadNode)
{
Node* pNewNode = (Node*)malloc(sizeof(Node));
pNewNode->Data = _Data;
pNewNode->pNext = nullptr;
_List->pHeadNode = pNewNode;
_List->CurCount++;
}
else
{
Node* pNewNode = (Node*)malloc(sizeof(Node));
pNewNode->Data = _Data;
pNewNode->pNext = nullptr;
Node* pNode = _List->pHeadNode;
while (true)
{
pNode = pNode->pNext;
if (nullptr == pNode->pNext)
{
break;
}
}
//while (pNode->pNext == nullptr)
//{
// pNode = pNode->pNext;
//}
pNode->pNext = pNewNode;
_List->CurCount++;
}
_List->CurCount++;
}
만약 입력되는 데이터가 처음일 경우.
if (nullptr == _List->pHeadNode)
Node* pNewNode = (Node*)malloc(sizeof(Node));
pNewNode->Data = _Data;
pNewNode->pNext = nullptr;
_List->pHeadNode = pNewNode;
_List->CurCount++;
리스트에 입력된 데이터가 1개 이상이라면
Node* pNewNode = (Node*)malloc(sizeof(Node));
pNewNode->Data = _Data;
pNewNode->pNext = nullptr;
Node* pNode = _List->pHeadNode;
while (true) // 1
{
pNode = pNode->pNext;
if (nullptr == pNode->pNext)
{
break;
}
}
while (pNode->pNext == nullptr) // 1의 축약 버전.
{
pNode = pNode->pNext;
}
pNode->pNext = pNewNode;
_List->CurCount++;
Node* pNewNode = (Node*)malloc(sizeof(Node));
pNewNode->Data = _Data;
pNewNode->pNext = nullptr;
_List->CurCount++;
while (true) // 1
{
pNode = pNode->pNext;
if (nullptr == pNode->pNext)
{
break;
}
}
while (pNode->pNext) { pNode = pNode->pNext; } // 2
일괄 선언 바꾸기: Ctrl + r + r
#include <iostream>
#include "LinkedList.h"
int main()
{
LinkedList mylist = {};
PushBack(&mylist, 10);
PushBack(&mylist, 10);
PushBack(&mylist, 10);
return 0;
}
#pragma once
struct Node
{
int Data;
Node* pNext;
};
struct LinkedList
{
Node* pHeadNode;
int CurCount;
};
void PushBack(LinkedList* _List, int _Data);
#include "LinkedList.h"
#include <iostream>
void PushBack(LinkedList* _List, int _Data)
{
Node* pNewNode = (Node*)malloc(sizeof(Node));
pNewNode->Data = _Data;
pNewNode->pNext = nullptr;
if (nullptr == _List->pHeadNode)
{
_List->pHeadNode = pNewNode;
}
else
{
Node* pNode = _List->pHeadNode;
/*while (true)
{
pNode = pNode->pNext;
if (nullptr == pNode->pNext)
break;
}*/
while (pNode->pNext) { pNode = pNode->pNext; }
pNode->pNext = pNewNode;
}
_List->CurCount++;
}
1차 23.12.19
2차 23.12.20
3차 23.12.21
4차 23.12.22
5차 23.12.25
6차 24.01.02