二叉樹的模板類

2021-08-27 18:17:25 字數 1882 閱讀 6136

同樣的問題,當時忘了衛星資料的模板了

//二叉樹的模板類

#include using namespace std;

template struct node;

template class tree_class;

template tree_class::tree_class()

template //這裡用的是指標的引用,然後就直接把des的指標改變,並且有個parent屬性存在,所以至少要在函式裡對下一層進行判斷了。我覺得也可以用返回指標的方式,就需要在呼叫的時候先判斷到節點了嗎

void tree_class::nodecpy(node* &des,node* &src)else

if(src->right!=null)else

return;

}template tree_class::tree_class(tree_class& arg)

template void tree_class::nodedel(node* arg)

return ;

}template tree_class::~tree_class()

template bool tree_class::insert(const type & value) //一直搜尋到了二叉樹的最下層節點,最後tmp指到了這個null位置,tmp_p是這個null位置的父節點

tmp = new node;

tmp->value = value;

tmp->left = null;

tmp->right = null;

tmp->parent = tmp_p;

if(tmp_p==null)//無元素

else if(tmp_p->value>value)

else if(tmp_p->valueright = tmp;

return true;

} else

else return;

}template void tree_class::showall()

template node* tree_class::searchnode(node* p,const type & value)

template node* tree_class::search(const type & value)

return tmp;

}template node* tree_class::max()

return tmp;

}template node* tree_class::minnode(node* arg)

return tmp;

}template node* tree_class::min()

template node* tree_class::replace(node* des,node* src)else if(des->parent->right==des)

if(src!=null) src->parent = des->parent;

return des;

/* if(des->left!=null)

if(des->right!=null)*/

}template bool tree_class::delete(const type & value)

else if(tmp->right==null)

else

//然後再拼接摘出來的這個節點左邊子樹

tmp = replace(tmp,right_min);

right_min->left = tmp->left;

tmp->left->parent = right_min;

delete tmp; }

} int main()

二叉樹模板

最近學習的,關於二叉樹的建立,前中後序遍歷,和求二叉樹高等。include includetypedef struct node node typedef struct tree void preorder node node 先 前 序遍歷 根 左 右 void inorder node node...

二叉樹 二叉樹

題目描述 如上所示,由正整數1,2,3 組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n 12,m 3那麼上圖中的結點13,14,15以及後面的結點都是不存在的,結點m所在子樹中包括的結點有3,6,7,12,因此結點m的所在子樹...

c 實現鏈式二叉樹類模板

include include using namespace std 非遞迴後續遍歷的標誌位 enum tags 提前宣告非遞迴後續遍歷的棧類 template class t class stackelement 提前宣告二叉樹類模板 template class t class binaryt...