关于数据结构考试的问题!急急急!!!

我女朋友生病了,结果这周他们计算机专业的数据结构考试,她因为生病没有参加,老师给她一次机会,E-MAIL了个一份电子版的考试题让她在家做,明天中午前交,可是今天早上开始我女朋友就开始发烧,到现在也没退,我说帮她做,但我是学中文的,只能帮她找找概念性的东西,编程我是一窍不通啊。。。希望哪位计算机专业的达人能帮我,也算帮我们这个忙,帮忙做一下这张试卷的编程部分,谢谢!

二、综合应用:(共30分)
1.假设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为:
A B C D E F G H
0.09 0.15 0.04 0.07 0.18 0.08 0.2l 0.18
(1)请具此构造哈夫曼树,(2)写出每个字符的前缀编码,(3)计算该编码方案的平均码长。 (20分)

2.设有数组定义:int a[6][7],假定一个整型数据占4个字节,存储器按字节编址,已知数组A的首地址为1000,数组A按行存储时元素a[3][4]的地址为 。(需要写出运算过程)

3.下面程序段的时间复杂度为( )
for (i=0; i<m; i++)
for (j=0; j<n; j++) A[i][j]=i*j;

三、算法:(共50分)
1.已知单链表为带头结点的有序表(递增),试写出一算法删除其中所有大于 min小于max的结点(25分)
算法原形:void delete(node *head, elemtype min, elemtype max)

2. 编写一个算法,统计以二叉链表存储的二叉树的深度。(25分)
算法原形:int GetDeph(Tnode *root)

再次谢谢大家! 我现在真的很着急!

2.2 1100 计算过程:((3*7+5)-1)*4+1000
2.3 O(m*n)
3.1
void delete(node *head,elemtype min,elemtype max)
{
node *p,*q,*r;
if(head==NULL) return;
else
{
p=head->next;
while(p!=NUll&&p->data<=min)
{ q=p;
p=p->next;
}
while(p!=NULL&&p->data<=max)
{
r=p;
p=p->next;
free(r);
}
q->next=p;
return;
}
}

3.2
int GetDeph(Tnode *root)
{
if(root==NULL)
return(0);
else{
dl=GetDepth(root->lchild);
dr=GetDepth(root->rchild);
if(dl>dr);
return(dl+1);
else
return(dr+1);
}
}
哈夫曼编码我也不太会。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-12-26
建议到专业网站咨询一下吧,这里关注较少。
第2个回答  2009-12-26
问你的老师 或者 你的师兄