二叉樹遍歷的6種遍歷方法

2021-06-29 07:05:31 字數 1164 閱讀 7139

二叉樹遍歷的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...