확실히 싱글 체인 리스트 할때 보다는 수월했다. 쓸모없는 값도 있겠지만 뭐가 중요할까.
다음은 트리(이건 순환까지 하겠다.) 그 다음은 그래프. 딱 거기까지 하고 알고리즘으로 들어간다.
#include <iostream>
using namespace std;
class Node
{
friend class Chain;
private:
Node* last;
Node* next;
int data;
public:
Node(int val = NULL, Node* LastLink = NULL, Node* NextLink = NULL);
};
class Chain
{
private:
Node* first;
Node* cur;
Node* last;
int len;
public:
Chain();
void MakeNode(int value = NULL);
void ShowAll();
void Reverse();
};
Node::Node(int val, Node* LastLink, Node* NextLink)
{
this->last = LastLink;
this->next = NextLink;
this->data = val;
}
Chain::Chain()
{
this->first = NULL;
this->cur = NULL;
this->last = NULL;
this->len = 0;
}
void Chain::MakeNode(int value)
{
Node* n1 = new Node(value);
if (this->first == NULL)
{
this->first = n1;
this->cur = n1;
this->last = n1;
this->len++;
}
else
{
cur->next = n1;
this->last = n1;
last->last = cur;
cur = n1;
len++;
}
}
void Chain::ShowAll()
{
cur = first;
for (int i = 0; i < this->len; i++)
{
cout << cur->data<< " ";
cur = cur->next;
}
cout << "\n";
}
void Chain::Reverse()
{
cur = last;
for (int i = this->len; i > 0; i--)
{
cout << cur->data << " ";
cur = cur->last;
}
}
int main()
{
Chain* C1 = new Chain();
C1->MakeNode(3);
C1->MakeNode(5);
C1->MakeNode(7);
C1->ShowAll();
C1->Reverse();
return 0;
}
'vidigummy KAU > 재활운동' 카테고리의 다른 글
재활운동.(BOJ 1920 수 찾기) (0) | 2020.06.27 |
---|---|
재활운동 4(맞나)(백준 1978번 문제)(소수 구하기) (0) | 2020.06.11 |
재활운동3(이진트리) (0) | 2020.06.10 |
재활운동 1(c++ 싱글 체인 리스트) (0) | 2020.06.01 |