我想用邻接表来表示一个图,但是我遇到了指针问题。链接列表创建
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。但是我写的代码没有工作。可能是什么问题呢?
编辑:好吧,我纠正了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 2011-12-14 11:56:29
您不应该完全改变问题的基础。接受答案并提交另一个后续问题。然后添加完整的(尽管不超过必要的)代码。 – moooeeeep 2011-12-14 12:36:32