二叉樹遍歷的6種遍歷方法(先序遍歷,中序遍歷,後序遍歷分別用遞迴跟非遞迴實現)。
主要**如下:
#include
#define
true
1#define
false
0#define ok 1
#define error 0
#define infeasible -
1#define overflow -
2typedef struct bitnode
bitnode,*bitree;
int visit(int a)
//先序遍歷--遞迴
int preorder(bitnode *ptree,int (*visit)(int))
else
return ok; //正常返回
}//中序遍歷--遞迴
int inorder(bitreenode *ptree,int (*visit)(int))
else
return ok;
}//後序遍歷--遞迴
int lastorder(bitreenode *ptree,int (*visit)(int))
else
return ok;
}//先序遍歷--非遞迴
int preorder2(bitnode *ptree,int (*visit)(int))
else pop(s,pt);
} return ok; //正常返回
}//中序遍歷--非遞迴
int inorder2(bitnode *ptree,int (*visit)(int))
else
}return ok;
}//後序遍歷--非遞迴
int lastorder2(bitnode *ptree,int (*visit)(int))
else
if(!pt)
push(s,null);
} }return ok;
}//按先序次序輸入結點值,空格字元表示空樹
status creatbitree(bitree &t)
return ok;
}
二叉樹遍歷方法
二叉樹簡介 二叉樹是每個節點最多有兩個子樹的樹結構。通常被稱作左子樹 left subtree 和右子樹 right subtree 二叉樹常被用於實現二叉查詢樹二叉堆。二叉樹 深度為k 並且有2 k 1個節點的二叉樹稱為滿二叉樹。這種樹的特點是每一層的節點數都是最大節點數。而且在一棵二叉樹中,除最...
二叉樹的遍歷方法
二叉樹的遍歷有三種方式,如下 1 前序遍歷 dlr 首先訪問根結點,然後遍歷左子樹,最後遍歷右子樹。簡記根 左 右。2 中序遍歷 ldr 首先遍歷左子樹,然後訪問根結點,最後遍歷右子樹。簡記左 根 右。3 後序遍歷 lrd 首先遍歷左子樹,然後遍歷右子樹,最後訪問根結點。簡記左 右 根。例1 如上圖...
二叉樹的遍歷方法
include include include using namespace std typedef struct node bintree typedef struct node1 btnode void preorder1 bintree root 遞迴前序遍歷 void inorder1 b...