请高手看一下这几个c的考研编程题
(以下程序或算法均用c实现)
1.假定二叉树用链式存储结构表示,设计一个判断一棵二叉树是否为
平衡二叉树的算法。
2,设T是一棵具有n个接点的二叉树,若给定二叉树T 的先序序列和中序序列,
并假定T 的先序序列分别存放在数组preorder[n]和inorder[n]中,设计一个
构造二叉树T 的链式存储结构的算法。
3.完成函数askline,计算任给一个正文文件的行数。用c实现,函数头格式为:
int askline(char *fname)
4.任意给定一个大写英文字母,输出从该字母到字母A间的字母组成的回文串,
具体构成方法如下:(1)该串的前半部分是从该字母逐个按字典降序排列至
字母A,再按升序排列至该字母;(2)串中的字母A,C,E,G,I,……Y均为大写;
b,d,f,h,j,……z全部为小写。例如:输入(给定)一个大写英文字母F,程序
输出的回文串为fEdCbAbCdEf.输入(给定)一个大写英文字母C,程序输出的
回文串为:CbAbC.请完成这个子程序。
5.写出一个判别给定二叉树是否为二叉排序树的算法。设此二叉树以二叉链表
作存储结构,且树中的结点关键字均不同。
6。设有向图用邻接矩阵adj表示,每个顶点的入度用数组nodein存储,已知adj和
nodein。请写出对该图进行拓扑排序的算法。
7。任给出一个正整数n,输出0,1,……,n-1的所有排列。例如:给定n=3,则
输出:0,1,2;0,2,1;1,0,2;1,2,0;2,0,1;2,1,0。
8。如果一个数列中的任意一段(至少是两个元素)各个元素均相同,则称为等
值数列段,等值数列段中元素的个数叫做数列段的长度。现有由n个元素组成的
整数数列A,求A中长度最大的所有等值数列段的首末位置,如果没有等值数列段,
则输出特殊标志。
9。设数组A[n]中存放有n个整数,试设计一个O(n)时间的算法,对数组中的
元素从新安排,使得任一负整数在所有正整数之前。