1. 写一个二叉树,第一个数据满足二叉搜索树性质;第二个数字满足最大堆性质,且数字不一样。(图是自己构造的)
结构:
struct pair_t
{
int a;
int b;
};
struct node_t
{
int a,b;
node_t *left,*right;
}
1) 写一个构建这个性质的二叉树的函数(传入进去俩个数组)
node_t* build( pair_t *pair, int n )
2) 描述一下插入一个新节点对的算法
2、有三个进程A,B,C;设计一个传输类P负责。
~读写数据压缩为azip的格式、
~读写数据经过编码
~读写数据经过gzip格式的编码
有以下工具函数(名字不对,但是就是一个压,一个解的意思):
azip();
auzip();
base64enbound();
base64debound();
gzip()
guzip()
提示:
要考虑新角色的加入。
3、写一个函数,利用所给出工具函数,完成所要求的功能
有一个函数recv,
int recv(char *buf, int n);
要求给出buffer,并指出大小。这个函数主要返回字符的个数,例如传入的字符串为“1231\n45\n678”第一次调用recv,返回4,第二次调用返回2,即第二次调用返回的是第二行字符。
现在有一个函数要调用recv,使其输出1231,额,完了,反正就是依次独处每一行的字符,并返回那个字符。
char* read_line()
{
//你写的拉拉>_<
}
这篇博客主要涵盖了2016年阿里巴巴C/C++研发工程师在线笔试的部分题目,包括如何构建一个满足二叉搜索树和最大堆性质的二叉树,并详细阐述了插入新节点的算法。此外,还涉及到了进程管理问题,设计了一个处理数据传输、压缩和编码的类P,并利用给定工具函数完成特定功能。同时,提出了一个根据recv函数逐行处理字符串的需求。

4799

被折叠的 条评论
为什么被折叠?



