인접 목록을 사용하여 그래프를 나타내려고하지만 포인터에 문제가 있습니다.링크 된 목록 생성
typedef struct vertex{
int num;
struct vertex *next;
} Vertex;
Vertex *adj[10];
void build(){
Vertex *v=NULL;
Vertex *t=NULL;
v = malloc(1*sizeof(*v));
v->num = 1;
adj[0] = v; //NODE with value 1
t = v;
v = malloc(1*sizeof(*v));
v->num = 1;
t->next = v; // ANOTHER NODE but it should be the SAME NODE with the above one
t = v;
//v = malloc(1*sizeof(*v));
//v->num = 1;
//t->next = adj[0]; // causes infinite loop...
//t = v;
v = malloc(1*sizeof(*v));
v->num = 2;
t->next = v;
t = v;
}
저는 실제로 구축하기 위해 노력하고 있습니다. 1 -> 1,2. 하지만 내가 작성한 코드는 작동하지 않았습니다. 무엇이 문제 일 수 있습니까?
EDITED : 좋아, NULL을 수정했습니다. 예상되는 출력은 1 - >> 1,2입니다. 2 개의 노드가 1을 가리키는 그래프와 다음 노드의 값이 2 인 그래프. 리스트를 얻은 후 그래프를 만들 때 문제가 발생합니다. 1 -> 1,2; 나는 3 개의 다른 노드를 가지고있는 것처럼 보인다. 나중에 노드 값을 1에서 3으로 변경하면 3 -> 1,2가되지만 노드를 2 개만 가져야하므로 변경 한 후에 원하는 출력이 3 -> 3,2가되어야합니다.
t를 v로 설정하면 t가 NULL로 설정됩니다. – wildplasser
질문의 기초를 완전히 변경하면 안됩니다. 대답을 수락하고 대신 다른 후속 질문을 제출하십시오. 그런 다음 완전한 (필요한 것 이상은 아니지만) 코드를 추가하십시오. – moooeeeep
그렇다면 가능한 중복에 대해 불평 할 수 있습니다. ( – thetux4