本文整理汇总了C#中Hash.GetNibble方法的典型用法代码示例。如果您正苦于以下问题:C# Hash.GetNibble方法的具体用法?C# Hash.GetNibble怎么用?C# Hash.GetNibble使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Hash
的用法示例。
在下文中一共展示了Hash.GetNibble方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: NodeExists
/// <summary>
/// Traverse down tree to see the availability of given leaf node.
/// </summary>
/// <param name="ID"></param>
/// <returns></returns>
public bool NodeExists(Hash ID)
{
TreeNode<LeafDataType> TempRoot = Root;
int HLEN = ID.Hex.Length << 1; // Multiply by 2
for (int i = 0; i < HLEN; i++)
{
byte Nibble = ID.GetNibble(i);
if ((i < (HLEN - 1)))
{
if (TempRoot.Children[Nibble] == null)
{
return false;
}
TempRoot = TempRoot.Children[Nibble];
}
if (i == (HLEN - 1))
{
if ((TempRoot.Children[Nibble] != null) && TempRoot.Children[Nibble].IsLeaf)
{
return true;
}
else
{
return false;
}
}
}
return false;
}
示例2: TraverseToLeaf
/// <summary>
/// Traverses to a leaf node.
/// </summary>
/// <param name="ID"></param>
/// <param name="Leaf"></param>
/// <returns></returns>
private TraverseResult TraverseToLeaf(Hash ID, out ListTreeLeafNode Leaf)
{
ListTreeNode TempRoot = Root;
int LeafDepth = Constants.HashTree_NodeListDepth;
for (int i = 0; i < LeafDepth; i++)
{
byte Nibble = ID.GetNibble(i);
if ((i < (LeafDepth - 1)))
{
if (TempRoot.Children[Nibble] == null)
{
Leaf = default(ListTreeLeafNode);
return TraverseResult.MidwayBreak;
}
TempRoot = TempRoot.Children[Nibble];
}
if (i == (LeafDepth - 1))
{
if ((TempRoot.Children[Nibble] != null) && TempRoot.Children[Nibble].IsLeaf)
{
Leaf = (ListTreeLeafNode)TempRoot.Children[Nibble];
return TraverseResult.Success;
}
else
{
Leaf = default(ListTreeLeafNode);
return TraverseResult.LeafDoesNotExist;
}
}
}
Leaf = default(ListTreeLeafNode);
return TraverseResult.NodeDoesNotExist;
}
示例3: GetNodeData
/// <summary>
/// Gets the element at the position specified by the ID.
/// </summary>
/// <param name="ID"></param>
/// <returns></returns>
public LeafDataType GetNodeData(Hash ID)
{
TreeNode<LeafDataType> TempRoot = Root;
int HLEN = ID.Hex.Length << 1; // Multiply by 2
for (int i = 0; i < HLEN; i++)
{
byte Nibble = ID.GetNibble(i);
if ((i < (HLEN - 1)))
{
if (TempRoot.Children[Nibble] == null) throw new Exception("Node does not exist. Midway Break");
TempRoot = TempRoot.Children[Nibble];
}
if (i == (HLEN - 1))
{
if ((TempRoot.Children[Nibble] != null) && TempRoot.Children[Nibble].IsLeaf)
{
TreeLeafNode<LeafDataType> TLN = (TreeLeafNode<LeafDataType>)TempRoot.Children[Nibble];
return TLN.Value;
}
else
{
throw new Exception("Node does not exist.");
}
}
}
throw new Exception("Node does not exist.");
}