二叉樹按層遍歷 非遞迴實現

2021-08-27 23:49:01 字數 559 閱讀 4622

用佇列儲存左右子女的位址。當從佇列中拿出乙個節點時,將這個節點的左右子女的位址也放到佇列中

#include 

#include

//二叉樹節點的結構

typedef

struct nodebtnode;

//建立一顆二叉查詢樹(右子女比左子女大)

btnode *createbtnode(int a,int n)

else

}if(pa->data > p->data)

else

}return root;

}//按層遍歷

void level_order(btnode *root,int n)

if (p->right)

}free(q);

}int main(void);

//建立二叉查詢樹

root = createbtnode(data,10);

//按層遍歷

level_order(root,10);

return

0;}

二叉樹遍歷 遞迴 非遞迴實現

先序遍歷中序遍歷 後序遍歷 根結點 左子樹 右子樹 左子樹 根子樹 右子樹 左子樹 右子樹 根結點 先序遍歷 void preorder btree t 中序遍歷 void inorder btree t 後序遍歷 void postorder btree t 遞迴 recursion 就是子程式 ...

按層遍歷二叉樹

include include typedef struct bitnodebitnode,bitree 定義二叉樹型別 typedef struct qnodeqnode,queueptr 建立鏈 typedef struct linkqueue 建立佇列 void enqueue linkque...

二叉樹的實現, 遍歷 遞迴, 非遞迴, 層序

include binarytree.h include stack.h include queue.h 通過前序遍歷的陣列 abd e h cf g 構建二叉樹 btnode binarytreecreate btdatatype str,int idx else 二叉樹銷毀 void binar...