u012833537
2019-07-02 22:15
采纳率: 100%
浏览 392

求:把字符串变成树节点的算法 C# 或者JAVA

求:把字符串变成树节点的代码
数码家居>电子类>汽车用品>车用收纳箱
数码家居>电子类>汽车用品>车载香水/香薰
数码家居>电子类>生活电器>其他
数码家居>电子类>生活电器>净水设备
数码家居>电子类>生活电器>吸尘器
数码家居>电子类>生活电器>扫地机器人
数码家居>电子类>生活电器>空气净化器
服饰户外>内衣袜品>内裤
服饰户外>内衣袜品>塑身衣/裤
服饰户外>内衣袜品>文胸
服饰户外>内衣袜品>睡衣/家居服
服饰户外>内衣袜品>袜子
服饰户外>女装>T恤
服饰户外>女装>休闲裤

比如  数码家居>电子类>汽车用品>车用收纳箱

数码家居 1 电子类 2 汽车用品3 车用收纳箱4

数码家居1 电子类 2 汽车用品3 车载香水/香薰5

服饰户外>内衣袜品>内裤
服饰户外 9 内衣袜品 10 内裤 11


  class CNode
{
    private int _NodeID = 0;

    public int NodeID
    {
        get { return _NodeID; }
        set { _NodeID = value; }
    }
    private string _NodeName = "";

    public string NodeName
    {
        get { return _NodeName; }
        set { _NodeName = value; }
    }
    private int _   Parentid = 0;

    public int  Parentid
    {
        get { return _  parentid; }
        set { _ parentid = value; }
    }
}
  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

3条回答 默认 最新

  • threenewbee 2019-07-03 10:12
    最佳回答

    完整代码+exe采纳我的回答以后留下email给你

    其他人如果需要:https://download.csdn.net/download/caozhy/11271091

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace Q767996
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            class CNode
            {
                private int _NodeID = 0;
    
                public int NodeID
                {
                    get { return _NodeID; }
                    set { _NodeID = value; }
                }
                private string _NodeName = "";
    
                public string NodeName
                {
                    get { return _NodeName; }
                    set { _NodeName = value; }
                }
                private int _parentid = 0;
    
                public int Parentid
                {
                    get { return _parentid; }
                    set { _parentid = value; }
                }
                public override string ToString()
                {
                    return NodeName;
                }
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                var nodes = new List<CNode>();
                int id = 0;
                foreach (string s in textBox1.Lines)
                {
                    string[] paths = s.Split('>');
                    CNode pnode = null;
                    for (int i = 0; i < paths.Length; i++)
                    {
                        var pnode1 = nodes.FirstOrDefault(x => x.NodeName == paths[i]);
                        if (pnode1 == null)
                        {
                            pnode1 = new CNode() { NodeID = id++, NodeName = paths[i], Parentid = pnode == null ? -1 : pnode.NodeID };
                            nodes.Add(pnode1);
                        }
                        pnode = pnode1;
                    }            
                }
                loadroot(nodes);
            }
    
            private void loadroot(List<CNode> list)
            {
                foreach (var item in list.Where(x => x.Parentid == -1))
                {
                    var tn = treeView1.Nodes.Add(item.NodeName);
                    loadchild(list, tn, item);
                }
            }
    
            private void loadchild(List<CNode> list, TreeNode tn, CNode node)
            {
                foreach (var item in list.Where(x => x.Parentid == node.NodeID))
                {
                    var tn1 = tn.Nodes.Add(item.NodeName);
                    loadchild(list, tn1, item);
                }
            }
        }
    }
    
    

    图片说明

    完整代码+exe采纳我的回答以后留下email给你

    评论
    解决 无用
    打赏 举报
查看更多回答(2条)

相关推荐 更多相似问题