2017-11-30 6 views
-1
struct node 
{ 
int data; 
node *next; 
}; 

이것은 연결 목록에서 구조를 정의하는 데 사용되는 코드입니다. node_new * 옆의 3 번째 줄에있는 node * next를 다음으로 대체 할 수 있습니까?3 행의 노드를 node_new 또는 다른 것으로 변경할 수 있습니까?

+0

합니다. 그러나 이제 더 이상 다른 노드를 가리키지 않습니다. – StoryTeller

+0

내 의심은 내가 그 자체로 일종의 재귀라고 부르고있다. 우리는 노드 자체에 대한 데이터와 포인터를 포함하는 구조 노드를 정의하고 있습니다. 어떻게 가능합니까? –

+0

재귀 적이 아닙니다. 개체의 이름을 아는 순간 개체에 대한 포인터를 만들 수 있습니다. 정의는 존재할 필요가 없습니다. 'struct node; 노드 * p = nullptr;은 완벽하게 유효합니다. 여기도 마찬가지입니다. – StoryTeller

답변

0

node_new *next 또는 다른 것으로 바꿀 수 있습니까? 당신이 아마 원하는 것을 달성 할 것이기 때문에, 없기 때문에 구조체의 다른 부분을 유지함으로써

.

당신은 당신의 구조체가 무엇을 의미하는지 이해할 필요가있다 : 당신은 할 수있다

struct node  // this is the type of the node 
{ 
    int data; // data of node 
    node *next; // pointer to the next node (thus the type has to match) 
};