반응형

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이다.

반응형

+ Recent posts