华科软件工程机试题2

5、在一个整形数组a中既有负数又有正数,编写一个算法将a中所有负数移到整数之前,要求其时间复杂度为O(n),n为数组长度,并且只使用常数个辅助空间。 
例如:a[]={1,2,3,4-1,1,-2,-1,-4}执行算法后的输出为a[]={-4,-1,-2,-1,1,4,3,2,1}  


6、编写一个C函数,输入一个二叉树的根节点,返回这棵树中所有值大于0的节点值之和,如果根伟空,返回0. 
二叉树的链式存储结构对应的C语言的节点类型定义如下: 
Typedef struct node{   
ElemType data; 
struct node *lchild;   
struct node *rchild;  
}BTree;  


7、A是一个长度为N的整形数组,其中可能包含重复的元素,例如A={1,2,2,3,2,1,3,2},删除数组中相同的元素后得到{1,2,3}, 
a)如果数组没有排序,写一个C语言函数,输入参数为数组首地址和长度,删除其中重复的元素,返回删除后的数组的长度。 
b)上述函数的时间复杂度为多少,以删除前的数组长度N表示。 
c)如果数组A已经排好序,设计并写出一个C语言函数完成a)中的工作,要求时间复杂度是O(N) 。  


8、写一个C语言函数将一颗二叉树用层序遍历列出所有节点,即先列出根节点,再从左向右列出深度为1的节点的值,然后再左向右列出深度为2的节点的值,如此继续。数的节点类型TREENODE包含一个整型值Value和俩个指针:LeftChild和RightChild。可以使用的函数(不限于)包括MaleEmptyQueue (QUEUE *q),  EnQueue (QUEUE *q,TREENODE *tn) DeQueue (QUEUE *q,TREENODE *tn) , IsEmpty (QUEUE *q) , DisposeQueue (QUEUE *q)。  





  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值