编程题
1 树的广度优先和深度优先遍历
2 字符串中单词(非符号)的逆转
3 在某一字符串中另一字符串的位置
4 两单向链表的链接
笔试题:
1. 写程序实现返回一个正整数的Summary,例如输入4,则由1+(1+2)+(1+2+3)+(1+2+3+4)得到Summary=20.
2. 写程序实现快速排序,采用你最擅长的语言(与第7题二选一);
3. 写程序实现堆排序, 采用你最擅长的语言;
4. 写一个程序,合并两个有序的链表,例如一个链表是1->2->5,另一个是3->4,则合并后是1->2->3->4->5
5. 连接一个二叉树同层所有的兄弟,例如:一个二叉树根是1,左孩子是2, 2有4(左),5(右)两个孩子,树根1还有一个右孩子3,3有6,7两个孩子.则请把2与3连接, 4,5,6,7连接.
数据结构如下:
BiTreeNode
{
int data;
BiTreeNode *lchild;
BiTreeNode *rchild;
BiTreeNode *sibling;
}
现在树结点的sibling都是空的.按上面的要求写程序连接它们.
提示:可以考虑采用队列.
6. 将一个单向链表反转,即所得结果与原链表元素的链接方向相反