每周进度条
周数 | 专业 | 时间 | 其他方面学习 | 总结 | |
12 | 图的遍历 | 4小时 | html | 还是有些不懂,但是还是学有学成,不懂就去问问! |
//
深度遍历
void dfsal(graph *g,int i){
int w;//linknode *p;
// p=(struct linknode*)malloc(sizeof(struct linknode))
//
for(int j=0;j<g->n;j++) visited[j]=0;
printf("%5c",g->vertices[i].data);
visited[i]=1;
for(linknode *p=g->vertices[i].first;p;p=p->next){
w=p->adjvecx;
if(visited[w]==0)
dfsal(g,w);
}
}
/
广度遍历
void bfsal(graph *g,int i){
queue Q;int w,e;
int v;
linknode *p;
for(int j=0;j<g->n;j++) visited[j]=0;
visited[i]=1;
printf("%5c",g->vertices[i].data);
e=i;
initqueue(Q);enqueue(Q,e);
//
n=isEmpty(Q);
while(isEmpty(Q)==1){
v=dequeue(Q);
p=g->vertices[v].first;
//
if(p!=NULL){
// for( linknode *p=g->vertices[v].first;p=NULL;p=p->next){
//
此上面的循环此处不可用否则只输出第一个数
while(p!=NULL){
w=p->adjvecx;
if(visited[w]==0){
//printf("%c",p->adjvecx);
printf("%5c",g->vertices[w].data);
visited[w]=1; enqueue(Q,w);