L
leftTheHaskel
Добрый день! Пишу словарь на основе префиксного динамического дерева) На данный момент пытаюсь осуществить добавление элемента с помощью рекурсии. Вот код
Не знаю как дальше написать...Запутался! Нужна ваша помощь! За ранее спасибо!
Код:
namespace Slovar
{
public partial class Form1 : Form
{
Wordd tree;//дерево
public Form1()
{
InitializeComponent();
tree = new Wordd();// создаём новый элемент типа Wordd
}
private void button1_Click(object sender, EventArgs e)
{
Wordd temp = new Wordd();
temp.Slovo = textBox2.Text;
temp.Perevod = textBox1.Text;
AddElement(temp.Slovo,tree);//функция добавления
}
private Wordd AddElement(string s, Wordd node)
{
if (s.Length==0) return null;//если слово кончилось то return
else{
for (int i = 0; i < s.Length; i++)
{
string bykva = s.Substring(0, 1);
node.Bykva = bykva;
if (node.qwer.Count == 0) { node.qwer.Add(node); s=s.Substring(1, s.Length - 1); node.Bykva = s.Substring(0, 1); node.qwer[i].Bykva =node.Bykva; }
if ((bykva) == Convert.ToString(node.qwer[i].Bykva))
{
s = s.Substring(1, s.Length - 1);
node.qwer[i].Add(node);
}
else
{
Wordd w = new Wordd();
w.Bykva = s.Substring(0, 1);
s = s.Substring(1, s.Length - 1);
node.qwer[i].qwer.Add(w);
w = AddElement(s, node);
}
}
}
}
return что-то; //:D вот тут я не в курсе
}
}
public class Wordd
{
public string Slovo;
public string Perevod;
public string Bykva;
public List<Wordd> qwer;
public Wordd()
{
qwer = new List<Wordd>();
}
}
}