Пример #1
0
        public void Empty()
        {
            var root = new BtNode <char>();

            Convert("", root);
            Assert.That(root.Data, Is.EqualTo(default(char)));
        }
Пример #2
0
        public void Convert(string s, BtNode <char> root)
        {
            if (s.Contains("?") && s.Contains(":"))
            {
                var questionMark = s.IndexOf("?");

                var colon = s.LastIndexOf(":");

                var r     = s.Substring(0, 1);
                var left  = s.Substring(questionMark + 1, colon - questionMark - 1);
                var right = s.Substring(colon + 1);

                root.Data = r[0];

                if (left.Length > 0)
                {
                    root.Left = new BtNode <char>();
                    Convert(left, root.Left);
                }

                if (right.Length > 0)
                {
                    root.Right = new BtNode <char>();
                    Convert(right, root.Right);
                }
            }
            else if (s.Length == 1)
            {
                root.Data = s[0];
            }
        }
Пример #3
0
        public void Simple()
        {
            var s    = "a?b?c:d:e";
            var root = new BtNode <char>();

            Convert(s, root);
            Assert.That(root.Data, Is.EqualTo('a'));
            Assert.That(root.Left.Data, Is.EqualTo('b'));
            Assert.That(root.Right.Data, Is.EqualTo('e'));
            Assert.That(root.Left.Left.Data, Is.EqualTo('c'));
            Assert.That(root.Left.Right.Data, Is.EqualTo('d'));
        }