另外再补上一些可能碰到的问题:
find_friends 可能会给你一些之前没有加过的点,这时要回传 -1
你在开 array 时想要用 array[500] 的话要记得开 501
// 通常多开个 5 到 10 是省事的做法
还不行的同学可以测测下面的程式码:
#include<stdlib.h>
#include<stdio.h>
#include"graph.h"
void print_friends(Graph *g, int node){
int friends[500];
int i, n;
n = find_friends(g, node, friends);
printf("%3d has %3d friends:", node, n);
for(i=0; i<n; i++)
printf(" %d", friends[i]);
printf("\n");
}
void print_add_node(Graph *g, int node){
int a = add_node(g, node);
printf("add_node %3d returns %2d\n", node, a);
}
void print_add_edge(Graph *g, int u, int v){
int a = add_edge(g, u, v);
printf("add_edge (%3d, %3d) returns %2d\n", u, v, a);
}
int main(){
Graph *g = (Graph*) malloc(sizeof(Graph));
init(g);
print_add_node(g, 500);
print_add_node(g, 499);
print_add_edge(g, 500, 499);
print_friends(g, 500);
print_add_node(g, 499);
print_add_node(g, 498);
print_add_edge(g, 499, 498);
print_friends(g, 500);
}
请视自己的需要调整 main 函数里的呼叫
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.217.38
※ 编辑: realturner 来自: 140.112.217.38 (12/12 09:35)