| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1735 人关注过本帖
标题:这个递归调用,n只等于1
只看楼主 加入收藏
wstcl
Rank: 1
等 级:新手上路
帖 子:381
专家分:5
注 册:2005-8-17
结帖率:100%
收藏
 问题点数:0 回复次数:5 
这个递归调用,n只等于1
从某书上的一个实例(网上下载相应代码),一个二叉树的排序,先插入,然后用递归遍历输出,比如插入5个元素,在控制台的确了输出了5个排序后的元素,但我在里面n++;n最后输出只有1,为什么啊
搜索更多相关主题的帖子: 二叉树 控制台 网上 元素 
2015-08-31 10:39
wstcl
Rank: 1
等 级:新手上路
帖 子:381
专家分:5
注 册:2005-8-17
收藏
得分:0 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace BinaryTree
{
    public class Tree<TItem> where TItem : IComparable<TItem>
    {
        public Tree(TItem nodeValue)
        {
            this.NodeData = nodeValue;
            this.LeftTree = null;
            this.RightTree = null;
        }

        public void Insert(TItem newItem)
        {
            TItem currentNodeValue = this.NodeData;
            if ((newItem) > 0)
            {
                if (this.LeftTree == null)
                {
                    this.LeftTree = new Tree<TItem>(newItem);
                }
                else
                {
                    this.LeftTree.Insert(newItem);
                }
            }
            else
            {
                if (this.RightTree == null)
                {
                    this.RightTree = new Tree<TItem>(newItem);
                }
                else
                {
                    this.RightTree.Insert(newItem);
                }
            }
        }

        public void WalkTree()
        {
            if (this.LeftTree != null)
            {
                this.LeftTree.WalkTree();
               
            }

            Console.WriteLine(this.NodeData.ToString());
            n++;//n每递归一次后,又返回到0
            
            if (this.RightTree != null)
            {
                this.RightTree.WalkTree();
            }
        }

        public TItem NodeData { get; set; }
        public Tree<TItem> LeftTree { get; set; }
        public Tree<TItem> RightTree { get; set; }

      
        public int n=0;
    }
}

Love Baby
2015-08-31 10:41
wstcl
Rank: 1
等 级:新手上路
帖 子:381
专家分:5
注 册:2005-8-17
收藏
得分:0 
看看这个代码,为什么啊,我是用c#2010写的。

Love Baby
2015-08-31 10:41
wstcl
Rank: 1
等 级:新手上路
帖 子:381
专家分:5
注 册:2005-8-17
收藏
得分:0 
明白了,因为每递归一次,类就实例化一次,而n是在类中定义的。

Love Baby
2015-08-31 10:55
米粒大小3
Rank: 1
等 级:新手上路
帖 子:40
专家分:7
注 册:2015-10-25
收藏
得分:0 
回复 2楼 wstcl
厉害!!!
2015-10-25 16:14
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
定义成静态不就好了

剑栈风樯各苦辛,别时冰雪到时春
2015-10-26 12:44
快速回复:这个递归调用,n只等于1
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028068 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved