c 二叉樹實現

2022-07-31 07:24:11 字數 1036 閱讀 9314

#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...