반응형
LinkedList.h
#pragma once
template<typename T>
class Link
{
T value;
Link<T>* link;
public:
Link(void);
Link(Link<T>* link);
void SetLink(Link<T>* link);
Link<T>* GetLink(void);
void SetValue(T value);
T GetValue(void);
};
template<typename T>
Link<T>::Link(void)
{
link = nullptr;
}
template<typename T>
Link<T>::Link(Link<T>* link)
{
this->link = link;
this->value = 0;
}
template<typename T>
Link<T>* Link<T>::GetLink(void)
{
return link;
}
template<typename T>
void Link<T>::SetLink(Link<T>* link)
{
this->link = link;
}
template<typename T>
void Link<T>::SetValue(T value)
{
this->value = value;
}
template<typename T>
T Link<T>::GetValue(void)
{
return value;
}
main.cpp
#include "LinkedList.h"
#include <iostream>
int main(void)
{
Link<int> intLink1 = new Link<int>();
Link<int> intLink2 = new Link<int>();
Link<int> intLink3 = new Link<int>();
intLink1.SetValue(10);
intLink2.SetValue(20);
intLink3.SetValue(30);
intLink1.SetLink(&intLink2);
intLink2.SetLink(&intLink3);
int i = 1;
for (Link<int> link = intLink1; link.GetLink() != nullptr; link = *link.GetLink())
{
std::cout << i << "번째 value : " << link.GetValue() << std::endl;
++i;
}
return 0;
}
실행결과
C++로 구현한 LinkedList이다.
반응형