其中的 linkstack.h 和 linkqueue 分別在 以下兩篇博文裡:
linkstack
、linkqueue
#include #include "linkstack.h"
#include "linkqueue.h"
using namespace std;
//定義節點
templatestruct node
//建構函式,無引數
//建構函式,帶引數
node(const t &x,node *l=null,node *r=null):data(x),left(l),right(r){}
~node(){} //析構函式
};//定義二叉樹
templateclass bt
;/*二叉樹的實現*/
//構造空二叉樹
template bt::bt()
//構造以資料值為x的結點為根結點的二叉樹
template bt::bt(const t &x)
//構造以p為根結點的二叉樹
template bt::bt(const node*p)
//返回根結點位址
template node* bt::getroot()
//建立乙個以資料值為x的結點為根結點,以lt為左子樹、rt為右子樹的二叉樹
template void bt::maketree(const t &x,bt <,bt &rt)
//刪除左子樹
template void bt::delleft()
}//刪除右子樹
template void bt::delright()
}//判斷是否為空樹
template bool bt::empty() const
//刪除二叉樹
template void bt::clear()
}//刪除以t為根結點的二叉樹
template void bt::clear(node*t)
}//求二叉樹的規模
template int bt::size() const
//求以t為根結點的二叉樹的規模
template int bt::size(node*t) const
//求二叉樹的高度
template int bt::height() const
//求以t為根結點的二叉樹的高度
template int bt::height(node*t) const
return -1;
}//求二叉樹葉子結點個數
template int bt::leafcount() const
}return cnt;
}//前序遍歷二叉樹
template void bt::preorder() const
*///非遞迴實現:
if(root)}}
}//中序遍歷二叉樹
template void bt::midorder() const
*///非遞迴實現:
if(root)
while(!stack.empty())}}
}}
}//後續遍歷二叉樹
template void bt::postorder() const
*///非遞迴實現:
if(root)
node*tmp=null;
bool flag=1;
while(!stack.empty()&&flag)
else
}}while(!stack.empty());
}}//層次遍歷二叉樹
template void bt::levelorder() const
}}//判斷是否為完全二叉樹
template bool bt::iscompbt() const
}else
else if(!tmp->left&&tmp->right)
else
}queue.dequeue();
}while(!queue.empty())
queue.dequeue();
return judge;
}//建立二叉樹,輸入flag表示為空
template void bt::createtree(t flag)
}cout<<"\n建立完成!\n\n";
}//複製二叉樹
template void bt::copytree(bt &tree)
//複製以t為根結點的二叉樹為以r為根結點的新二叉樹
template void bt::copytree(node*&r,node*t)
else r=null;
}//析構函式
template bt::~bt()
二叉樹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...
C 二叉樹實現
二叉樹節點類 二叉樹結點類bintreenode宣告 templateclass bintreenode bintreenode getleft bintreenode getright t getdata void setleft bintreenode left void setright bi...