#includeusing namespace std;
#include#include#includetypedef int elemtype;
#define maxsize 100
typedef struct bitnode
bitnode,*bitree;
//建立節點
bitree createnode(int value)
//增加結點
bitree addnode(int value,bitree pnode)
else
}else
else
}}//三種遍歷方式 時間複雜度為o(n) 空間複雜度為o(n)
//先序遍歷 根左右
void preorder(bitree t)
}//中序遍歷 左根右
void inorder(bitree t)
}//後序遍歷 左右根
void postorder(bitree t)
}//二叉樹的深度
int treeheight(bitree pnode)
}//三種遍歷方式的非遞迴實現
void preorder_nonrecursion(bitree t)
else
}cout
int top = -1;
bitree p = t;
cout<
while(p!=nullptr || top!= -1)
else
}cout
int top = -1;
bitree p = t;
vectorflag(maxsize,0);
cout<
while(p!=nullptr || top !=-1)
else
else}}
cout結果圖:
C 實現二叉樹
其中的 linkstack.h 和 linkqueue 分別在 以下兩篇博文裡 linkstack linkqueue include include linkstack.h include linkqueue.h using namespace std 定義節點 templatestruct no...
二叉樹C 實現
最近整理原來的一些 腦子有點不好使,還是記下來吧。binary tree.h,遍歷包含了遞迴和非遞迴兩種,層次遍歷 ifndef binary tree h define binary tree h templatestruct binode templateclass bitree endif b...
C 實現二叉樹
實現 pragma once include include include using namespace std templatestruct bintreenode templateclass binarytree binarytree char str 根據先序字串行建立二叉樹 binary...