在机试题目中,经常需要使用动态数组或链表。大家可能很容易想到stl, 但有些机试禁止你用stl.
1.你可能说,定义一个超级大的数组就可以,你牛。但后台测试用例一运行,你就挂了。
2. 想冒险的人, 可以考虑用realloc. 挂的可能性有,但不是很大。
3. 正统的、最好的办法,你还是用链表吧。
下面我来说一个投机取巧的用链表的方法, 该方法不涉及删除链表结点(尽管很简单)的这些操作。你这么来定义你的结点即可:
- typedef struct node
- {
- struct node *next;
- int time;
- int ID;
- int isNodeEnable;
- }RequestNode;
每次生成结点的时候,记得置isNodeEnable为1, 每次删除(不需要从链表中删除)的时候,记得置为0. 每次遍历链表的时候,记得检查结点是否有效。
睡觉。