设为首页 加入收藏

TOP

基于顺序存储的多叉树实现: (3) 前序遍历 (四)
2014-11-23 22:57:32 来源: 作者: 【 】 浏览:8
Tags:基于 顺序 存储 实现
te
38 inline void mtree::pre_iterator_impl::increment(reverse_tag)
39 {
40 assert(tree_&&off_<=tree_->size());
41 off_!=tree_->size() forward_prev() : first(reverse_tag());
42 }
43 template
44 template
45 inline void mtree::pre_iterator_impl::decrement(no_reverse_tag)
46 {
47 assert(tree_&&off_<=tree_->size());
48 off_!=tree_->size() forward_prev() : last(no_reverse_tag());
49 }
50 template
51 template
52 inline void mtree::pre_iterator_impl::decrement(reverse_tag)
53 {
54 assert(tree_&&off_<=tree_->size());
55 off_!=tree_->size() forward_next() : last(reverse_tag());
56 }

四、使用示例
(1)正向遍历整颗树,代码如下:

1 mtree mt;
2 mtree::iterator_base root = mt.get_root();
3 mtree::pre_iterator it = root;
4 mtree::pre_iterator last = --it.end();
5 for (it = it.begin();it!=it.end();++it)
6 {
7 cout << *it;
8 if (it!=last)
9 cout <<" ";
10 }
(2)反向遍历整颗树 ,代码如下:

1 mtree mt;
2 mtree::iterator_base root = mt.get_root();
3 mtree::reverse_pre_iterator r_it = root;
4 mtree::reverse_pre_iterator r_last = --r_it.end();
5 for (r_it = r_it.begin();r_it!=r_it.end();++r_it)
6 {
7 cout << *r_it;
8 if (r_it!=r_last)
9 cout <<" ";
10 }

首页 上一页 1 2 3 4 下一页 尾页 4/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇对象的消息模型 下一篇C语言进行远程注入进程

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: