페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#5924

노드(Node) 1초 1024MB

문제

노드(Node)는 컴퓨터 과학에 쓰이는 기초적인 단위로서 데이터를 저장할 수 있는 공간을 의미한다.

대체로 자료구조를 공부할 때 이 노드를 클래스로 직접 구현하게 되는데, 방법은 아래와 같다.

[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;
    }
}

위 코드를 작성하여 실행해보고 아래 문제를 풀어보자.

[문제]

N개의 데이터를 입력받아 각각을 노드에 저장한 후 입력받은 순서의 반대로 연결한다.

즉, 데이터A가 입력되고, 데이터B가 입력된다면, 데이터B를 저장한 노드의 next에 데이터A를 저장한 노드의 메모리가 저장된다.

가장 마지막에 들어온 데이터부터 연결된 노드를 타고 이동하며 모든 데이터를 출력하는 프로그램을 작성하시오.


입력

첫 줄에 정수 N이 입력된다. (1 \le N \le 10)

N 줄에 걸쳐 각 줄에 데이터가 하나씩 입력된다. 데이터는 1 이상, 100 이하의 정수만이 주어진다.


출력

데이터를 순서에 맞게 한 줄에 하나 씩 출력한다.


예제1

입력
3
1
2
3
출력
3
2
1


태그


출처

@klee

역링크