求先序线索化二叉树非递归算法?

来源:百度知道 编辑:UC知道 时间:2024/05/14 18:00:57
希望能够实现的朋友帮忙:
1、写出先序线索化二叉树非递归算法。
2、写出把无向图的邻接表转换成邻接矩阵的算法。
3、假设G图采用邻接表的存储;利用深度优先搜索方法求出无向图中通过给定点V的简单回路。
4、假设有向图G采用邻接矩阵存储,编写一个算法求出G中顶点i到顶点j的不含回路的长度为len的路径数。
感谢!

#include "iostream.h"
#include "stdlib.h"
#include "stdio.h"

typedef char ElemType;//定义二叉树结点值的类型为字符型
const int MaxLength=10;//结点个数不超过10个

typedef struct BTNode{
ElemType data;
struct BTNode *lchild,*rchild;
}BTNode,* BiTree;

void CreateBiTree(BiTree &T){//按先序次序输入,构造二叉链表表示的二叉树T,空格表示空树
// if(T) return;
char ch;
ch=getchar(); //不能用cin来输入,在cin中不能识别空格。
if(ch==' ') T=NULL;
else{
if(!(T=(BTNode *)malloc(sizeof(BTNode)))) cout<<"malloc fail!";
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
}

void PreOrderTraverse(BiTree T){//先序遍历
if(T){
cout<<T->data<<' ';
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
}
}
void InOrderTraverse(BiTree T){//中序遍历
if(T){
InOrderTraverse(T->lchil