Ejemplo n.º 1
0
        public static BinaryTreeNode <T> FromByteArray(byte[] Data)
        {
            BinaryTreeNodeSaver <T> res  = new BinaryTreeNodeSaver <T>();
            ExtBitArray             Bits = new ExtBitArray(Data);

            Bits.Seek(0);
            int OffsetLen = Bits.Read(5);
            int DataLen   = Bits.Read(5);

            res.Weight = 0;
            List <int> Offsets = new List <int>();

            Offsets.Add(Bits.Read(OffsetLen));
            Offsets.Add(Bits.Read(OffsetLen));
            res.Weight = 0;
            int Weight = 0;

            for (int i = 0; i < Offsets.Count; i++)
            {
                if (Offsets[i] == 0)
                {
                    continue;
                }
                Weight += Offsets[i];
                Bits.Seek((10 + Weight) * 8);
                Offsets.Add(Bits.Read(OffsetLen));
            }
            return(res);
        }