Free考研资料 - 免费考研论坛

 找回密码
 注册
打印 上一主题 下一主题

其中111是南京航空大学的2001的考研改编,

[复制链接]
跳转到指定楼层
楼主
hathor 发表于 06-12-22 18:19:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1111试编写算法,将数组 int A[n]中的所有奇数移到所有偶数之前,要求时间复杂度为 O(n)。



1、试编写算法,将数组 int A[n]中的所有奇数移到所有偶数之前,要求时间复杂度为 O(n)。
1、 设一单链表,其结点结构为 data link,试编写算法,将所有数据域中内容为奇数的结点
移动至所有数据域中内容为偶数的结点之前。
2、 已知两个栈stack1与stack2共享存储空间A[1..n],其中stack1的栈底设在A[1]处,stack2
的栈底设在 A[n]处,分别编写两个栈 stack1 与 stack2 的进栈 push(i,x)、退栈 pop(i)和置
栈空 MakeEmpty(i)的函数,其中 i=1,2,并且只有整个存储空间 A[1..n]全部被占满时才
发生溢出问题。

2
1、设二叉树采用链表表示,各结点结构为 lchild data rchild,其中 data 为整数型字段,设计
一算法打印出其中值为正整数的结点值,并要求打印次序满足:每个结点不能比其孩子结点
先打印。
2、用非递归的方法求一棵二叉树的高度。二叉树每个结点的格式为:左孩子结点指针、数
据域、右孩子结点指针。



其中111是南京航空大学的2001的考研改编,
如下算法:
Var%2==1奇 Var%2==0偶 遍历两三遍时间复杂度也是O(n)  O(3n)=O(n)
int JiShu[n]; int OuSh[n]; int CurJ=0; int CurO=0; for(int i=0; i<n; i++) { if(A%2==0) { OuSh[CurO++]=A; } else { JiSh[CurJ++]=A; } }  // 然后把数组拼起来就可以了

} else { JiSh[CurJ++]=A; } }  


上述几道算法还请高手赐教,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系我们|Free考研资料 ( 苏ICP备05011575号 )

GMT+8, 24-11-27 07:32 , Processed in 0.086339 second(s), 12 queries , Gzip On, Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表