2013——M笔试南京——程序
迄今只参加了M南京笔试,可惜自己不是计算机出身,还有好多东西得学啊……
M的最后一题是编程:
输入:单链表L0、L1、L2……Ln-1、Ln,将链表变为:L0、Ln、L1、Ln-1、L2……
算法:
1、将链表分成前后两个部分:前一个链表长度 >= 后一链表长度;简单2、反转后一个链表;简单3、合并两个链表;简单4、调用以上接口;gameover
算法实现:
typedef struct Node Node_t; Node_t *list_half(Node_t *head) {Node_t *rv = NULL;Node_t *start = head, *end = head;while(end && end->next && end->next->next){end = end->next->next;start = start->next;}if(start != NULL){rv = start->next;start->next = NULL;}return rv; }Node_t *list_reverse(Node_t *head) {Node_t *rv = head;Node_t *prev = NULL,*current= head,*next = NULL; while(current){next = current->next; current->next = prev;prev = current;current = next; } rv = prev;return rv; }/* head_first.len >= head_second.len * or: please check next_second == NULL*/ Node_t *list_merge(Node_t *head_first, Node_t *head_second) {Node_t *rv = head_first;Node_t *next_first = NULL, *next_second = NULL;#define LEN_DEFENSE #undef LEN_DEFENSE #ifdef LEN_DEFENSE Node_t **tail_chek = NULL; if(head_first == NULL) return head_second; #endifwhile(head_first && head_second){next_first = head_first->next;next_second = head_second->next;head_first->next = head_second;head_second->next = next_first;#ifdef LEN_DEFENSEtail_chek = &head_second->next; #endifhead_first = next_first;head_second = next_second;}#ifdef LEN_DEFENSE if(tail_check) { *tail_check = head_second; } #endifreturn rv; }Node_t *list_result(Node_t *head) {Node_t *head_halflist = list_half(head);head_halflist = list_reverse(head_halflist);head = list_merge(head, head_halflist);return head; }
可是最后我把list_result中的最后的“return head" 写成了 ”return 0“,原因在于:
我开始想让他们提供接口,我写出的程序进行调用,因此自己就写了main函数;后来,我想不一定要生成可执行程序,所以自己提供个接口给他们调用获得返回值,结果我只改了main的函数名和参数,最后的返回值忘改了。
行百里者,半九十……
还是好好看内存管理吧,Z先生指定的书还没看完……
2013.9.29
附:晚上同学说了下M的题,我看了下网上关于最后一天的解答,羞愧地无地自容啊,自己写的错误程序误导了他人;我昨天写的程序有误(反转),处理有冗余(合并)。如果有人看了我的随笔记录,如有错误,可以在文中指出,也可以发邮件给我……感谢
2013——M笔试南京——程序相关推荐
- Microsoft Visual Studio Ultimate 2013 RC 离线安装程序
Microsoft Visual Studio Ultimate 2013 RC 离线安装程序 ☆ 微软官网地址:☆ 官网地址 ☆ 离线安装程序地址:☆ 离线安装程序地址 (百度网盘) ☆ 文件校验信 ...
- 今天大家在南京程序员俱乐部QQ群里的一些唠叨
今天大家在南京程序员俱乐部QQ群里的一些唠叨 昂锋集团南京(1215988837) 9:49:55 有人做通讯的吗? 回复 大树 SA/SD(7631318) 9:52:05 具体说说? 回复 昂 ...
- Visual Studio 2013 添加一般应用程序(.ashx)文件到SharePoint项目
默认,在用vs2013开发SharePoint项目时,vs没有提供一般应用程序(.ashx)的项目模板,本文解决此问题. 以管理员身份启动vs2013,创建一个"SharePoint 201 ...
- Virtual Studio 2013 每次加载程序(dll)缓慢的问题
最近安装Virtual Studio 2013,发现每次加载运行程序时,特别是一个solution里面有多个文件,需要较多dll时,都需要半天,显示如下: 原因是每次程序执行时,都要从服务器端加载dl ...
- 任何字符串都可以作为c语言的标识符,2013年软考程序员模拟试题及答案解析一...
2013年软考网络工程师.IT项目管理师考前培训可进入 一.选择题 1.二进制语言是属于( ) A.面向机器语言 B.面向问题语言 C.面向过程语言 D.面向汇编语言 [解析]人们研制了许许多多计算机 ...
- 4月程序员工资统计出炉:平均14596元,南京程序员收入挤进一线。
来源 | 有数可据 2021年4月全国招收程序员456577人.2021年4月全国程序员平均工资14596元,工资中位数12500元,其中96%的人的工资介于2500元到65000元. 城市 使用 I ...
- 2021年4月程序员工资统计:平均14596元,南京程序员收入挤进一线。
作者:有数可据 blog.csdn.net/juwikuang/article/details/115559872 2021年4月全国招收程序员456577人.2021年4月全国程序员平均工资145 ...
- 程序员多数性功能不行_1024,节日快乐!南京程序员绝不认输
有这样一个神秘组织,规模庞大与键盘相伴.外行人声称对他们了解很多,其实不然. "程序员"-- 一个SPECIAL的群体.从一个个擅长头脑风暴的学生,变成公司里的技术大佬,满载着&q ...
- Visual Studio 2013运行C/C++程序
0 前言 开始学习C/C++了,肯定首先要找一个能运行程序的软件,很多人都有不同的推荐,如devc++.codeblocks,VC++6.0,Visual Studio 20XX,我们本科学习数据结构 ...
最新文章
- java代码使用http请求解压zip包并解析xml_Javascript 是如何解析 Excel 文件的?
- python贴吧发帖脚本-Python实现自动添加脚本头信息的示例代码
- C++ 编程错误记录
- 计算机制图国家规范,竣工图绘制相关国家规范
- 【Linux】9_存储管理交换分区管理Swap
- python 时序数据库_时序数据库InfluxDB
- php如何检测图片背景是白色,javascript – 用PHP检测白色图像背景?
- 热敏电阻温度特性曲线_NTC热敏电阻如何选型
- wordpress教程:默认http头信息X-Pingback的隐藏与修改
- 良心帖!看完这篇,你的 Python 入门基础就差不多了!
- 机器为内容“体检”?AI算法这样解构内容创作理解
- [20171106]配置客户端连接注意.txt
- Luogu2730 魔板 Magic Squares
- JavaWbe中文乱码解决方案
- 经纬度坐标转换xy坐标 python_Python 高斯坐标转经纬度算法
- 冲刺IPO:Soul在深红市场打开的社交元宇宙
- 面试题67. 把字符串转换成整数
- CVE-2021-1647 Windows Defender缓冲区溢出导致的任意代码执行漏洞复现
- 智能风控平台核心之风控决策引擎(一)
- Typora的下载及MarkDown使用
热门文章
- 华为手机如何升级鸿蒙系统_能运行EMUI 11才能升级到鸿蒙2.0,只有这些手机能升级,有你的吗...
- 薪资1.5万,学习IT让我重新找到方向
- android控件跟随手势滑动改变位置
- 动态规划解决方案最长公共子序列问题(开启)
- shell学习之shell执行方式及排错
- 巧解SEP杀毒软件卸载需要密码才能完全卸载问题
- No subject
- beats 耳机 android,Beats耳机app
- java socket抓取资源_Java 通过 Socket 的形式抓取网页内容
- html服务流程如何实现_朱传燕:美容院如何规范服务流程,提升专业口碑