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

求:把字符串变成树节点的算法 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条)

报告相同问题?

悬赏问题

  • ¥15 求给定范围的全体素数p的(p-2)的连乘积
  • ¥15 VFP如何使用阿里TTS实现文字转语音?
  • ¥100 需要跳转番茄畅听app的adb命令
  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥50 opencv4nodejs 如何安装
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页