树结构如下所示:
要求:需按照属性检索出其中一个树节点并返回值。
思路:
List<IntPtr> ptrList = new List<IntPtr>();
IntPtr getEidtPtr(IntPtr fatherPtr)
{
if(fathrPtr 中包含目标子节点)
return editPtr;
else
{
if (如果节点存在下一级节点)
{
ptrList.Add(nextPtr);
return getEidtPtr(nextPtr);
}
else
{
ptrList.Remove(fatherPtr);
if (如果fatherPtr存在同级节点)
{
ptrList.Add(standPtr);
return getEidtPtr(standPtr);
}
else
{
if (ptrList.Count == 0)
return IntPtr.Zero;
else
{
IntPtr f = getUpPtr();
return getEidtPtr(f);
}
}
}
}
}
{
IntPtr fatherPtr1 = ptrList[ptrList.Count - 1];
ptrList.Remove(fatherPtr1);
IntPtr stand =得到fatherPtr1的同级节点;
if (stand != IntPtr.Zero)
return stand;
else
return getUpPtr();
}