typedef struct vertex{
int num;
struct vertex *next;
} Vertex;
Vertex *adj[1];
void buildList(){
Vertex *v=NULL;
Vertex *t=NULL;
v = malloc(1*sizeof(*v));
v->num = 1;
adj[0] = v; //a NODE with value 1
t = v;
v = malloc(1*sizeof(*v));
v->num = 1;
t->next = v; // and 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;
}
予想される出力は、値 1 を持つノードであり、隣接リストにそれ自体があり、1 -> 1 のような出力です。
ここで私の問題は、2 つの異なるノードがあるように見えることです。それらの1つを変更しても、もう1つは変更されず、別のノードのように機能します。
たとえば、リストを作成した後、ノードの値を変更すると、3 -> 3 のような出力が得られます。しかし、3 -> 1 になります。ノードの変更は、他のノードには影響しません。adj[0] を t->next に向けようとすると、無限ループが発生します...