這裡認為書上求max那段for迴圈對j的賦值是錯誤的。
訂正一下
求二叉樹的寬度函式
typedef
struct
st;int
maxnode
(btnode *b)
if(q-
>rchild!=
null)}
for(i=
1;i<=lno;i++)if
(n>max)
max=n;
}return max;
}else
return0;
}
#include
#include
#include
#include
# define maxsize 100
typedef struct btnode
btnode;
建立二叉樹
void
creatbt
(btnode *
&t)//前序建立乙個二叉樹
t->data = ch;
//給t賦值
creatbt
(t->lchild)
;//給左子樹賦值
creatbt
(t->rchild)
;//給右子樹賦值
二叉樹 遞迴 非遞迴
include include include include using namespace std typedef struct node bintree typedef struct node1 btnode void creatbintree char s,bintree root 建立二叉...
計算二叉樹的最大寬度(非遞迴)
在做pta作業的時候接觸到了這個題,花了乙個小時完全弄明白他的原理,我真是笨啊!思考這個問題,怎樣才能層序遍歷二叉樹?那就是用佇列,每當有乙個節點出佇列,則將這個出佇列的節點的左右孩子入佇列,這樣可以按照層序遍歷整個二叉樹。那怎樣在層序遍歷的基礎上將每層二叉樹的節點分割開來,即達到累計出每層二叉樹節...
非遞迴二叉樹
由於棧和遞迴原理相同,且遞迴建立二叉樹的效率較低,所以我們可以借助棧來實現二叉樹的非遞迴建立以及遍歷。include include using namespace std template struct binarytreenode template class binarytree binary...