数据结构牛的网友快来捞分吧!!!!!!!!!!!!!!

hello_wyq 2002-09-27 08:20:11
这个是mm要考研的上届题目,要求用c++描述,多谢了!
不管是谁,只要能说一点的,都有分,先到先给。帮我答一道大题的就给100大洋,判断题20个大洋一题,但是一道题目前三名我才能给分,否则我的大洋就不够了,这个方面就对不起大家了。这里的分数仅仅是给参加答题人的出场费用了啦,具体分数,到时候请来领取。
 一、判断:
1. 算法是程序的抽象描述,程序是算法的具体实现,两者具有相同的特性。
2. 由一棵二叉树的前序遍历序列和中序遍历序列可唯一确定这棵二叉树。
3. 从逻辑结构上看,n维数组的每个元素均属于n个向量。
4. 完全二叉树中,若一个结点没有左孩子,则它必是树叶。
5. 具有n个叶结点的Huffman树一定共有2n-1个结点。

二、证明:若借助栈可由输入序列为1,2,3,4,…,n得到一个输出序列P1,P2,P3,…,Pn (它是输入序列的某种排列),则在输出序列中不可能出现以下情况:存在 I<j<k,使得Pj<Pk<Pi

三、证明:对任何一棵二叉树,若其叶结点个数为n0,度为2的非叶结点个数为n2,则有n0=n2+1

四、已知如下数据序列:25,50,34,56,12,80,47,23,90,67,试为该数据序列构造一最小堆(根为最小值的堆),要求写出构造过程

五、试写出将关键字 H,E,L,I,A,F,D,K按AVL树插入算法依次插入一空树中,每一关键字插入后树的状态及平衡时用到的旋转类型(若有旋转)

七、设散列函数为H(k)=k的第一个字母的字母序mod7,散列表的地址空间为0-6,对关键字序列(BAG,K,FREE,OK,ZERO,G,A),请按线性探测法解决冲突的方法构造散列表,并指出各关键字查找时的比较次数。

八、已知一带头结点的单链表L,结点数为n。试编写一算法将L逆向。要求,不利用辅助的结点空间,算法的时间复杂性为O(n)

九、试编写一个算法,使得一队原来男女混排的 n个同学能够分开,让所有女同学排在所有男同学之前。要求,不使用辅助空间,且算法的时间复杂性为O(n)

十、已知有向图G及其中结点u,v。试编写算法,求出从u到v的所有有向路径。
...全文
83 74 打赏 收藏 转发到动态 举报
写回复
用AI写文章
74 条回复
切换为时间正序
请发表友善的回复…
发表回复
unrealimage 2002-10-15
  • 打赏
  • 举报
回复
#include "stdio.h"
main()
{
printf("\n\b you are over");
}
ywchen2000 2002-10-12
  • 打赏
  • 举报
回复
8link invert(link head)
{
link back;
link pointer;
link next;
back=head;
pointer=back->next;
back->next=NULL;
next=pointer->next;
pointer->next=back;
back=pointer;
pointer=next;
while(1)
{
if(pointer->next!=NULL)
{
next=pointer->next;
pointer->next=back;
back=pointer;
pointer=next;
}
pointer->next=back;
head=pointer;
return head;
}
}
ywchen2000 2002-10-12
  • 打赏
  • 举报
回复
1对
xlwz 2002-10-11
  • 打赏
  • 举报
回复
接上:
先让i从做向右扫描,直到找到第一个男生为止
再让j从右往左扫描,直到找到第一个女生为止
此时i<j,则交换两人位置
i>=j扫描完毕!
算法复杂度为o(n)
xlwz 2002-10-11
  • 打赏
  • 举报
回复
九、试编写一个算法,使得一队原来男女混排的 n个同学能够分开,让所有女同学排在所有男同学之前。要求,不使用辅助空间,且算法的时间复杂性为O(n)
假设人数为n,顺序建立一个队列,男生值付1,女生付0
取一女生为分割元素
用2个下标变量left和right分别指向序列的第一个和最后一个
i=left j=right+1
xlwz 2002-10-11
  • 打赏
  • 举报
回复
还要我答哪题?
我今天多的是时间!
hello_wyq 2002-10-11
  • 打赏
  • 举报
回复
题目就是在问题的内容中啊!

xlwz 2002-10-11
  • 打赏
  • 举报
回复
四、已知如下数据序列:25,50,34,56,12,80,47,23,90,67,试为该数据序列构造一最小堆(根为最小值的堆),要求写出构造
我就答这一题咯,记得给分咯!
25
25 50
25 50 34
25 50 34 56
12 25 34 56 50
12 25 34 56 50 80
12 25 34 56 50 80 47
12 23 34 25 50 80 47 56
12 23 34 25 50 80 47 56 90
12 23 34 25 50 80 47 56 90 67
其实很简单的说,咱们数据结构考试比这难多咯!

志_祥 2002-10-11
  • 打赏
  • 举报
回复
题目在哪里呢?
birdzxy 2002-10-10
  • 打赏
  • 举报
回复
第8题:我看了johnmack(爱若琴弦) 兄的,也不大明了
不过我的和你也差不多
node *Reverse(node *head)
{
node *pR, *pC, *pN;
pR = head;
pC = head->next;
pN = pC->next->next ;
pR->next = NULL;
while(pN)
{
pC->next = pR;
pR = pC;
pC = pN;
pN = pC->next;
}
pC->next = pR;
pR = pC;
return pR;
}
birdzxy 2002-10-10
  • 打赏
  • 举报
回复
关于第9题:
男女分别用0、1表示
设有10个人
则设数组a[10];
int a[10] = {1, 1, 0, 1, 0, 0 , 1, 1, 0, 0};
int i, m = 0, temp;
for(i = 0; i < 10; i++)
{
if(a[i])
{
temp = a[m];
a[m] = 1;
a[i] = temp;
m++;
}
}}
这样不知道对不对?我看他们写的好复杂,都看不懂
wsSdj 2002-10-05
  • 打赏
  • 举报
回复
呵呵,数据结构都快忘了,不好意思。只能看看选择题了。
我的答案是 1(不清楚)2(对)3(错)4(错)5(错)
和 szhf1980(s') 不同之处在于 4,5 在将只有一个根节点的情况带入时验证得到。

证明题2 出至清华版《数据结构 c语言》的习题集中。好象用反证法……

benbenli 2002-10-02
  • 打赏
  • 举报
回复
第三题用数学归纳法证明最简单。

为了表达清晰起见,当二叉树总的结点数为m时,记n0(m)、n2(m)分别为度数为0、2的结点数。

当m=1时,二叉树只有1个根结点,同时它有是叶结点。此时n0(1)=1, n2(1)=0. n0(1)=n2(1)+1成立。

假设当m=k时结论n0(k)=n2(k)+1成立。现在增加一个结点到该二叉树,既成为m=k+1的情况。对k个结点的二叉树增加结点,可以将新增加的结点挂在一个叶结点下,也可以挂在一个度数为1的结点下。

如果新增加的结点挂在一个叶结点下,原先的该叶结点变为度数为1的结点,新增结点为叶结点。那么n0(k+1)=n0(k), n2(k+1)=n2(k)。因为有n0(k)=n2(k)+1, 所以n0(k+1)=n2(k+1)+1成立。

如果新增加的结点挂在一个度数为1的结点下,原先的该度数为1的结点变为度数为2的结点,新增结点为叶结点。那么叶结点和度数为2的结点各增加1个。从而n0(k+1)=n0(k)+1, n2(k+1)=n2(k)+1。因为有n0(k)=n2(k)+1, 所以n0(k+1)=n2(k+1)+1成立。

有数学归纳法可以得出结论:对于结点数为m的二叉树,n0(m)=n2(m)+1成立。


eduhf_123 2002-10-01
  • 打赏
  • 举报
回复
学习……
benbenli 2002-10-01
  • 打赏
  • 举报
回复
To: hello_wyq(半瓶墨水)
> 一般不用临时变量时,解决排序是不是可以考虑递归呢?
> 但是我不会,不知道这个是不是一个注意?

必须的临时变量是需要的。
递归的运行开销大很多,在算法研究中还尽量把递归算法改成非递归算法,当然需要开辟临时空间保存过程信息。

我给的第8和9题的算法在空间和时间上是最优的,这可以证明的。当然证明的篇幅回比算法本身长一点。
benbenli 2002-10-01
  • 打赏
  • 举报
回复
To: blue_fairy(兰精灵)
> swap(char *pd1, char *pd2)
> {
> for( i=0; i<sizeof(DATA); i++, pd1++, pd2++)
> {
> *pd1 ^= *pd2 ^= *pd1 ^= *pd2 ;
> }
> }

1. 请不要用这种小技巧而忽略更为重要的软件工程和面向对象思想。如果考试这么答题,说不定被教条的评卷人判错。
2. 另外,你可以执行你的代码和我的代码,比较时间开销。
lizhongkun 2002-10-01
  • 打赏
  • 举报
回复
哦!!晚了,晚了,遗憾》,现在已经晚了呀!!
CForum(程序)的解释有错误吧!!
应该是:边数为:e=n0+n1+n2-1=0*n0+1*n1+2*n2;=>n0=n2+1;另外第6题是??
会思考的草 2002-10-01
  • 打赏
  • 举报
回复
这些东西只有清华北大的人才会?都是一些基本的东西,基础牢的话,完全可以做出来。你这样叫别人帮你MM做有什么意思?自己不思考,到最后还是不会。
KyoUs 2002-09-30
  • 打赏
  • 举报
回复
你们都是海。我是一滴水。。

我都看不下去了。。。。我要去看书。。好好学习。。。

3年看能不能赶英超美。。。。

本来有点自负的。。现在很自悲了。。。
hawk_yin 2002-09-30
  • 打赏
  • 举报
回复
mark
加载更多回复(54)

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧