欢迎来到天天文库
浏览记录
ID:15665159
大小:73.00 KB
页数:6页
时间:2018-08-04
《邻接表存储,广度优先遍历》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include#include#defineOK1#defineERROR-1#defineFALSE0#defineTRUE1typedefintstatus;//--------存储类别,邻接表----------------#defineMAX_VERTEX_NUM20typedefstructArcNode{intadjvex;structArcNode*nextarc;}ArcNode;typedefstructVNode{intdata;ArcNode*firstarc;}VNode,AdjList[MAX
2、_VERTEX_NUM];typedefstruct{AdjListvertices;intvexnum,arcnum;}ALGraph;//----------------队列定义-----------typedefintstatus;typedefstructQnode{intdata;structQnode*next;}Qnode,*queueptr;typedefstruct{queueptrfront;queueptrrear;}linkqueue;////-------------初始化队列----------statusinitqueue(li
3、nkqueue&Q){Q.front=Q.rear=(queueptr)malloc(sizeof(Qnode));if(!Q.front)exit(0);Q.front->next=NULL;returnOK;}//---------------插入---------------voidEnQueue(linkqueue&Q,inte){Qnode*p;p=(queueptr)malloc(sizeof(Qnode));if(!p)exit(0);p->data=e;p->next=NULL;Q.rear->next=p;Q.rear=p;//return
4、OK;}//------------判定是否为空--------statusQueueEmpty(linkqueueQ){if(Q.front==Q.rear)returnOK;elsereturn!OK;}//--------------删除--------------statusDeQueue(linkqueue&Q,int&u){if(Q.front==Q.rear)returnERROR;queueptrp;p=Q.front->next;u=p->data;Q.front->next=p->next;if(Q.rear==p)Q.rear=Q.fr
5、ont;free(p);returnOK;}//------------定位,返回下标--------statusLocateVex(ALGraphG,intvex){for(inti=0;i6、n输入顶点");for(inti=0;i7、sizeof(ArcNode));p_1->adjvex=temp_2;p_1->nextarc=G.vertices[temp_1].firstarc;G.vertices[temp_1].firstarc=p_1;p_2=(ArcNode*)malloc(sizeof(ArcNode));p_2->adjvex=temp_1;p_2->nextarc=G.vertices[temp_2].firstarc;G.vertices[temp_2].firstarc=p_2;}returnOK;}//------------广度优先遍历------------8、statusvisit(intv){printf("
6、n输入顶点");for(inti=0;i7、sizeof(ArcNode));p_1->adjvex=temp_2;p_1->nextarc=G.vertices[temp_1].firstarc;G.vertices[temp_1].firstarc=p_1;p_2=(ArcNode*)malloc(sizeof(ArcNode));p_2->adjvex=temp_1;p_2->nextarc=G.vertices[temp_2].firstarc;G.vertices[temp_2].firstarc=p_2;}returnOK;}//------------广度优先遍历------------8、statusvisit(intv){printf("
7、sizeof(ArcNode));p_1->adjvex=temp_2;p_1->nextarc=G.vertices[temp_1].firstarc;G.vertices[temp_1].firstarc=p_1;p_2=(ArcNode*)malloc(sizeof(ArcNode));p_2->adjvex=temp_1;p_2->nextarc=G.vertices[temp_2].firstarc;G.vertices[temp_2].firstarc=p_2;}returnOK;}//------------广度优先遍历------------
8、statusvisit(intv){printf("
此文档下载收益归作者所有