eturn FALSE;
}
Status EnQueue(LinkQueue &Q,QElemType e)
{//将元素e入队。
QueuePtr p;
if(!(p=(QueuePtr)malloc(sizeof(QNode))))
exit(OVERFLOW);
p->data=e;
p->next=NULL;
Q.rear->next=p;
Q.rear=p; //注意此步! 先连接上,后转移。
return OK;
}
Status DeQueue(LinkQueue &Q,QElemType &e)
{//队头元素出列,并用e返回其值。
QueuePtr p;
if(Q.front==Q.rear)
return ERROR;
p=Q.front->next;
e=p->data;
Q.front->next=p->next;
if(Q.rear==p) //队列中只有一个元素。
Q.rear=Q.front;
free(p);
return OK;
}
//////////////////////////////////////////////
-------beg-----
-0#a--->d--->b
-1#b--->e--->c--->a
-2#c--->e--->d--->b
-3#d--->c--->a
-4#e--->c--->b
------------------------in_main_before_DFSTraverse--
-in_DFSTraverse-j=0-
v=a
-in_DFS1-v=0,w=3-
v=d
-in_DFS1-v=3,w=2-
v=c
-in_DFS1-v=2,w=4-
v=e
-in_DFS1-v=4,w=1-
v=b
-in_DFS2-v=4,w=1-
-in_DFS2-v=2,w=4-
-in_DFS2-v=3,w=2-
-in_DFS2-v=0,w=3-
------------------------in_main_before_DFSForest--
--in_DFSForest_GetVex(G,v)=a--
-----------------------------------------before_LevelOrderTraverse--
--visit_root--
-a-
--visit_firstchild--
-d-
--visit_firstchild--
-c-
--visit_firstchild--
-e-
--visit_firstchild--
-b-
-------end-----
Press any key to continue
//////////////////////////////////////////////
============================================================
e2:建立无向图的深度优先森林(DFSForest,G2),另一种遍历顺序.
......其它代码同上。
void CreateGraph(ALGraph &G)
{
int i, j = 0, k = 0;
char hand, tide;
ArcNode *p;
char vertices[]={'a','b','c','d','e'};
char head[]={'a','a','b','b','c','c'};
char tail[]={'d','b','e','c','d','e'};
//v1v2,v1v4,23,25,34,35,
...
}
......
//////////////////////////////////////////////
-------beg-----
-0#a--->b--->d
-1#b--->c--->e--->a
-2#c--->e--->d--->b
-3#d--->c--->a
-4#e--->c--->b
------------------------in_main_before_DFSTraverse--
-in_DFSTraverse-j=0-
v=a
-in_DFS1-v=0,w=1-
v=b
-in_DFS1-v=1,w=2-
v=c
-in_DFS1-v=2,w=4-
v=e
-in_DFS2-v=2,w=4-
-in_DFS1-v=2,w=3-
v=d
-in_DFS2-v=2,w=3-
-in_DFS2-v=1,w=2-
-in_DFS2-v=0,w=1-
------------------------in_main_before_DFSForest--
--in_DFSForest_GetVex(G,v)=a--
-----------------------------------------before_LevelOrderTraverse--
--visit_root--
-a-
--visit_firstchild--
-b-
--visit_firstchild--
-c-
--visit_firstchild--
-e-
--visit_nextsibling--
-d-
-------end-----
Press any key to continue
//////////////////////////////////////////////
============================================================
e3:建立无向图的深度优先森林(DFSForest,G4,和word中顺序一样).
......其他代码同上。
void CreateGraph(ALGraph &G)
{
int i, j = 0, k = 0;
char hand, t
ide;
ArcNode *p;
char vertices[]={'a','b','c','d','e','f','g','h'};
char head[]={'a','a','b','b','c','c','f','d','e'};
char tail[]={'c','b'
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库7.4.1无向图的连通分量和生成树(4)在线全文阅读。
相关推荐: