我想用鄰接表來表示一個圖,但是我遇到了指針問題。鏈接列表創建
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