树的通用遍历算法
来源:互联网 发布:人肉好吃吗 知乎 编辑:程序博客网 时间:2024/04/29 04:35
通用树的遍历算法,适合所有的树
/*树的遍历,通用算法*/#include<stdio.h>typedef struct E_node{ char data; struct E_node *child[M];//M为树的度}E_NODE;void pre_print(E_NODE *T)//前序遍历M次树{ int i; if(T!=NULL) { printf("%d,",T->data); for(i=0;i<M;i++) { pre_print(T->child[i]); } }}void pre_print2(E_NODE *T)//非递归前序遍历{ E_NODE *s[100];//栈元素最多100个,假设不会溢出 int top,i; if(T==NULL) { return; } s[0]=T; top=1;//树的根结点进栈 while(top>0) { T=s[--top];//取出栈节点为当前处理结点 printf("%d,",T->data); for(i=M-1;i>=0;i--)//对于当前队列从右到左各子树 { if(T->child[i]!=NULL) s[top++]=T->child[i];//子树根结点进栈 } }}void level(E_NODE *T)//层次访问{ E_NODE *q[100]; E_NODE *p; int head; int rear; int i; if(T==NULL) return ; q[0]=T;//树根结点入队 head=0; rear=1; while(head<rear)//队列非空 { p=q[head++];//取出队结点为当前处理结点 printf("%d,",T->data); for(i=0;i<M;i++)//对于当前结点从左到右各子树 { if(p->child[i]!=NULL) { q[rear++]=p->child[i];//子根结点入队 } } }}
0 0
- 树的通用遍历算法
- 【二叉树】非递归遍历的通用算法:前序、中序和后序
- 树的遍历算法
- 用递归和委托实现通用的树遍历
- 普通树的遍历算法
- 二叉树的遍历算法
- 二叉树的遍历算法
- 二叉树的遍历算法
- 二叉树的遍历算法
- 二叉树的遍历算法
- 遍历二叉树的算法
- 二叉树遍历的算法
- 二叉树的遍历算法
- 二叉树的遍历算法
- 二叉树的一些通用算法(C)
- QT的通用算法
- QT的通用算法
- 通用的文件夹遍历基类
- FAT32和NTFS最大支持的单个文件大小分别是多大?
- EEPROM读写控制器学习小结
- 数据库复制表数据
- Copy List with Random Pointer
- Windows下如何编译使用boost?
- 树的通用遍历算法
- C++11(12):拷贝控制
- Lightmapping设置
- 设计模式之行为型设计模式
- 使用android SDK + NDK的方法创建含本地代码的工程
- eclipse 快捷键指令
- Android WebView加载本地Html文件
- ios 常用的小框架
- 利用wget批量下载http目录下文件