문제
노드(Node)는 컴퓨터 과학에 쓰이는 기초적인 단위로서 데이터를 저장할 수 있는 공간을 의미한다.
![](https://s.jungol.co.kr/problem/77747/2cq3GXQrg4Hyxl5SR6dQjS.webp)
대체로 자료구조를 공부할 때 이 노드를 클래스로 직접 구현하게 되는데, 방법은 아래와 같다.
[python]
class Node:
def __init__(self, data, next=None):
self.data = data
self.next = next
node1 = Node("NEW YEAR")
node2 = Node(2024,node1)
p = node2
while p:
print(p.data)
p = p.next
[C++]
struct Node{
int dat;
Node* nxt;
Node(int d){ dat=d, nxt=nullptr; }
Node(int d,Node*n){ dat=d, nxt=n; }
};
int main(){
Node*node1 = new Node(1,nullptr);
Node*node2 = new Node(2,node1);
Node*p=node2;
while(p!=nullptr){
cout<<p->dat<<'\n';
p=p->nxt;
}
}
위 코드를 작성하여 실행해보고 아래 문제를 풀어보자.
[문제]
즉, 데이터A가 입력되고, 데이터B가 입력된다면, 데이터B를 저장한 노드의 next에 데이터A를 저장한 노드의 메모리가 저장된다.
가장 마지막에 들어온 데이터부터 연결된 노드를 타고 이동하며 모든 데이터를 출력하는 프로그램을 작성하시오.
입력
첫 줄에 정수
출력
데이터를 순서에 맞게 한 줄에 하나 씩 출력한다.
예제1
입력
3
1
2
3
출력
3
2
1
힌트
태그
출처
@klee