2012年12月2日

二叉树的层次遍历(队列实现)

摘要: 层次遍历的C++算法代码:(传入的是二叉树的根结点) 1 template <class Elem> 2 void level(BinNode<Elem>* subroot) 3 { 4 AQueue<BinNode<Elem>*> Q; 5 Q.enqueue(subroot); 6 while(!Q.isEmpty()) 7 { 8 BinNode<Elem>* temp; 9 Q.dequeue(temp); //返回temp指针是Q队列的表头的二叉树中的结点,而temp指针的结点已经被dequeue(出列)10... 阅读全文

posted @ 2012-12-02 17:12 Besion王 阅读(2518) 评论(0) 推荐(0) 编辑

关键码是否在目标二叉树中(search函数)

摘要: 编写一个递归函数search,传入参数为一颗二叉树根结点root和关键码值K,如果出现K返回true值,否则返回false值。课本的答案为:1 template <class Key, class Elem, class KEComp>2 bool search(BinNode<Elem>* subroot, Key K);3 { 4 if (subroot == NULL) return false;5 if (subroot->value() == K) return true;6 if (search(subroot->right())) ret... 阅读全文

posted @ 2012-12-02 11:40 Besion王 阅读(491) 评论(0) 推荐(0) 编辑

将general树转化为二叉树

摘要: 在general树中,二叉树A的左子结点是树中的A的最左子结点,A的右子结点是树中A的右侧兄弟结点转化算法代码:1 template <class Elem>2 BinNode<Elem>* convert(GTNode<Elem>* genroot) 3 {4 if (genroot == NULL) return NULL;5 GTNode<Elem>* gtemp = genroot->leftmost_child();6 btemp = new BinNode(genroot->val(), convert(gtemp),co 阅读全文

posted @ 2012-12-02 09:44 Besion王 阅读(132) 评论(0) 推荐(0) 编辑

导航