我是靠谱客的博主 着急狗,最近开发中收集的这篇文章主要介绍二叉树的(先序)遍历&树的(先序)遍历&图的(深度优先)遍历-三种先序遍历二叉树的(先序)遍历树的(先序)遍历图的(深度优先)遍历,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

二叉树的(先序)遍历

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[])//TNode *p指向 TNode 的指针
{
if(p!=NULL)
{visit(p);
Branch *q;
q=p->first;
while(q!=NULL)
{ r(&tree[q->Cid],tree);q=q->next;
}//r(p->Rchild) 
//visit(p);放在这就是后续了
}
}

图的(深度优先)遍历

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;
}
}

最后

以上就是着急狗为你收集整理的二叉树的(先序)遍历&树的(先序)遍历&图的(深度优先)遍历-三种先序遍历二叉树的(先序)遍历树的(先序)遍历图的(深度优先)遍历的全部内容,希望文章能够帮你解决二叉树的(先序)遍历&树的(先序)遍历&图的(深度优先)遍历-三种先序遍历二叉树的(先序)遍历树的(先序)遍历图的(深度优先)遍历所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部