二叉树的(先序)遍历
void r(BTNode *p)
{
if(p!=NULL)
{visit(p);
r(p->Lchild);
r(p->Rchild);
}
}
树的(先序)遍历
typedef struct Branch{int Cid;Branch *next;} Branch;
typedef struct Branch{int data;Branch *first;} TNode;
void r(TNode *p,TNode tree[])
{
if(p!=NULL)
{visit(p);
Branch *q;
q=p->first;
while(q!=NULL)
{ r(&tree[q->Cid],tree);q=q->next;
}
}
}
图的(深度优先)遍历
typedef struct arcn
{ int id; arcn *next; } arcn;
typedef struct vn
{ float price; arcn *next;} vn;
typedef struct
{ vn adjlist[100]; int vnum,arcnum;} G;
void r(int v ,AGraph *G)
{
visit[v]=1;
visit(v);
ArcNode *q=G->adjList[v].first;
while(q!=NULL)
{
if(visit[q->adjv]==0)
r(q->adjv,G);
q=q->next;
}
}