9月18号去计算所参加推免生的机试。。。9月19号去计算所参加推免生的面试。。。9月20号堕落在北京的青旅里,不能出门。。。
首先是不得不承认,计算所的环境很好,真的很好。然后就是机试,6道题目,两个小时,没有网络。其实后来自己在看,觉得最起码有两个题目是简单到我这种人都可以做出来的,无奈自己太渣,机试就跪的哟。最后是面试,项目真的太少,以至于老师一直在问我我的社会实践。。。回来之后,一起住的去面试清华的大牛告诉我,这种事情其实都是有套路,而且之前要想一下老师会问什么,然后想一下怎么回答。大牛是真的不一样的,比如傅里叶级数,我就只会做题,大牛就会想知道这个有什么用。厉害的人就是厉害,就是会在思维方式上面不一样。嗯,会在专业上想的比较深入。这样想来,自己好像理解了会汇编的高老师说的我们没有思考的能力的意思,像一只蝼蚁一样。我一定要改,我改还不行吗。
然后就是题目了.
1.用链表表示一个整数集,实现:
a.将一个整数插入整数集;
b.从整数集中删除一个整数;
c.两个整数集的交集;
d.两个整数集的并集。
2.将一个用字符串表示的数,表示为整型数
3.A是用任意个(大于等于一个)数字和字母表示的字符串,B是用0个或多个任意数字和字母表示的字符串,请编程输出B串在A串中第一次出现的位置,或者输出不出现。
4.求圆周率,写出计算公式,并计算出时间复杂度。
5.请根据输入的点集判断这些点构成的多边形是否为凸多边形。
6.计算输入的数学表达式的值,数学表达式中包括+、-、*、/、(、)。
上面的题目全凭记忆,和原题意思一样,表述的比较有误差。
我只实现了1、2、3、4。下面是代码:
第一题:
第一题本质上感觉就是链表的实现。
set.h
#include<stdio.h>
#include<stdlib.h>
typedef struct intSet set;
typedef struct intSet* setList;
struct intSet
{
int i;
set* next;
};
void printList(setList s);
setList insertInt(int x, setList s);
setList deleteInt(int x, setList s);
setList extractSet(setList s1, setList s2);
setList unionSet(setList s1, setList s2);
set.cpp
#include"stdafx.h"
#include"set.h"
void printList(setList s)
{
if (s->next == NULL)
pri