求二叉树问题的C程序代码

//从终端输入一个整数序列,构建一棵允许具有重复结点的二叉排序树(左子树元素小,右子树不小):
//(1) 使用依次插入元素的方法(InsertBST)构建二叉排序树;
//(2) 分别写出二叉树的前序、中序、后序遍历递归算法;
//(3) 写出前序遍历序列的非递归算法(使用以前写好的堆栈代码);
//(4) 使用递归算法求该二叉树中叶子结点和非叶子结点的个数;
//(5) 使用递归算法求该二叉树的高度;
//(6) 层次遍历该二叉树(使用以前写好的队列代码);
//(7) 从终端输入一个整数,查找这个整数是否在该二叉树中,成功返回true,否则false(要求使用非递归);
//(8) 销毁这个二叉树,释放其中的每一个结点;

搜搜吧,网上很多。
http://blog.csdn.net/xzz_hust/article/details/8847411

既然问题这么清楚,每一个都可以上网查查才是,何必做伸手党呢?
任何一本数据结构的书都会把链表讲清楚的~