腾讯2014软件开发笔试题目
2014-03-01 10:30
489 查看
请设计一个排队系统,能够让每个进入队伍的用户都能看到自己在 中所处的位置和变化。队伍可能随时有人加入和退出,当有人退出影响到用户的位置排名时需要即时反馈到用户。
分析:使用双联表完成该任务比较简单,并且容易扩展实现其他的功能。
1. 当插入时,从队尾插入节点,插入完成以后向每个用户通知即可。
2. 从队列中删除元素时,通过元素的在队列中的位置将其删除,并且将其后的元素的位置依次向前移。
笔者也是尝试解题,如有不正确的地方望大家指出。
分析:使用双联表完成该任务比较简单,并且容易扩展实现其他的功能。
1. 当插入时,从队尾插入节点,插入完成以后向每个用户通知即可。
2. 从队列中删除元素时,通过元素的在队列中的位置将其删除,并且将其后的元素的位置依次向前移。
笔者也是尝试解题,如有不正确的地方望大家指出。
#include <stdio.h> struct NODE { int num; int mark;//the person mark,it is also can be a string. NODE * pre; NODE * next; } * HEAD , * TAIL; void showQueue(); void join(); void exit( int num ); void main() { HEAD = new NODE; HEAD->num = 0; HEAD->pre = NULL; HEAD->next = NULL; TAIL = HEAD; join();join();join();join();join();join();join();join(); showQueue(); exit(3);exit(1);exit(6); showQueue(); } void showQueue() { NODE * pointer = HEAD; while( pointer->next != NULL ) { printf( "queue number is %d\n" , pointer->num ); pointer = pointer->next; } } void join() { NODE * current = new NODE; current->num = TAIL->num+1; current->pre = TAIL; current->next = NULL; TAIL->next = current; TAIL = current; } void exit( int num ) { if( num > 0 ) { NODE * p = HEAD; NODE * removeNode = NULL; while( p != NULL ) { if ( p->num == num ) { removeNode = p; break; } p = p->next; } if ( removeNode != NULL ) { printf( "%d number exit!\n" , removeNode->num ); //remove node if ( removeNode->pre != NULL ) { removeNode->pre->next = removeNode->next; } if ( removeNode->next != NULL ) { removeNode->next->pre = removeNode->pre; } //sub queue number while( removeNode->next != NULL ) { removeNode->next->num--; removeNode = removeNode->next; } } else { printf( "%d this number is not exist!\n" , num ); } } else { printf( "please input correct number!\n" ); } }
相关文章推荐
- 腾讯2014软件开发笔试题目
- 【系统设计】腾讯2014软件开发笔试题目——排队系统设计
- 腾讯2014软件开发笔试题目
- 腾讯2014软件开发笔试题目
- [置顶] 腾讯2014软件开发笔试题目
- 两个整数集合的交集 ———— 腾讯2014软件开发笔试题目
- 腾讯2014软件开发笔试题目
- 腾讯2014软件开发笔试题目
- 腾讯2014软件开发笔试题目简答题
- 腾讯2014软件开发笔试题目
- 腾讯2014软件开发笔试题目
- 腾讯2014软件开发职位校园招聘笔试试题
- 腾讯2014实习生软件开发笔试
- 腾讯2014校招笔试---软件开发A1
- [实战演练]2014腾讯校招软件开发笔试题
- 腾讯2014校园招聘笔试题(成都站,软件开发岗)——2014.09.21
- 腾讯笔试题(2014软件开发)回忆录
- 腾讯2014校园招聘【软件开发类】笔试题(北京站)
- 腾讯2014软件开发笔试
- 腾讯2014校园招聘软件开发类笔试试题