1 = tree
1.1 pre order(HLR)
implement :: non-recursive ::
while(!stack.empty())
{
if(riht)
{
right;
}
if(left)
{
push(left);
}
}
1.2 post order(LRH)
{find the relation of pre and cur(the top element in the stack) }
http://blog.youkuaiyun.com/kingoverlord/article/details/18926345
1.3 in order (LHR)
http://blog.youkuaiyun.com/kingoverlord/article/details/18945739
preorder is much easier ; we can use a stack to get the result of preorder and pop this stack to get the LRH;;
http://blog.youkuaiyun.com/kingoverlord/article/details/18932469
1.3 Can be used to find whether a binary search tree is correct or not `` the array of this traversing is increasing districtly ; ;
http://blog.youkuaiyun.com/kingoverlord/article/details/18945739
1.4 BST''S define; iff all the left nodes of each node is larger than this node;
bool myIsbst(node * head)
{
static struct node * pre = NULL;// l1 the static one can be used as a global Variable
if (head)
{
if (!myIsbst(head->left))
return false;
if (pre && pre->data >= head->data)
return false;
pre = head;
if (!myIsbst(head->right))
return false;
}
return true;// if none of the false is returned;
}
2 linked list;
pquick and p slow;
1 = get the middle one;
2 = find the circle;
reverse the linked list;
the new head;
3 = combine the two linked llist
http://blog.youkuaiyun.com/kingoverlord/article/details/18935327