迄今只参加了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笔试南京——程序相关推荐

  1. Microsoft Visual Studio Ultimate 2013 RC 离线安装程序

    Microsoft Visual Studio Ultimate 2013 RC 离线安装程序 ☆ 微软官网地址:☆ 官网地址 ☆ 离线安装程序地址:☆ 离线安装程序地址 (百度网盘) ☆ 文件校验信 ...

  2. 今天大家在南京程序员俱乐部QQ群里的一些唠叨

    今天大家在南京程序员俱乐部QQ群里的一些唠叨 昂锋集团南京(1215988837) 9:49:55  有人做通讯的吗? 回复 大树 SA/SD(7631318) 9:52:05  具体说说? 回复 昂 ...

  3. Visual Studio 2013 添加一般应用程序(.ashx)文件到SharePoint项目

    默认,在用vs2013开发SharePoint项目时,vs没有提供一般应用程序(.ashx)的项目模板,本文解决此问题. 以管理员身份启动vs2013,创建一个"SharePoint 201 ...

  4. Virtual Studio 2013 每次加载程序(dll)缓慢的问题

    最近安装Virtual Studio 2013,发现每次加载运行程序时,特别是一个solution里面有多个文件,需要较多dll时,都需要半天,显示如下: 原因是每次程序执行时,都要从服务器端加载dl ...

  5. 任何字符串都可以作为c语言的标识符,2013年软考程序员模拟试题及答案解析一...

    2013年软考网络工程师.IT项目管理师考前培训可进入 一.选择题 1.二进制语言是属于( ) A.面向机器语言 B.面向问题语言 C.面向过程语言 D.面向汇编语言 [解析]人们研制了许许多多计算机 ...

  6. 4月程序员工资统计出炉:平均14596元,南京程序员收入挤进一线。

    来源 | 有数可据 2021年4月全国招收程序员456577人.2021年4月全国程序员平均工资14596元,工资中位数12500元,其中96%的人的工资介于2500元到65000元. 城市 使用 I ...

  7. 2021年4月程序员工资统计:平均14596元,南京程序员收入挤进一线。

     作者:有数可据 blog.csdn.net/juwikuang/article/details/115559872 2021年4月全国招收程序员456577人.2021年4月全国程序员平均工资145 ...

  8. 程序员多数性功能不行_1024,节日快乐!南京程序员绝不认输

    有这样一个神秘组织,规模庞大与键盘相伴.外行人声称对他们了解很多,其实不然. "程序员"-- 一个SPECIAL的群体.从一个个擅长头脑风暴的学生,变成公司里的技术大佬,满载着&q ...

  9. Visual Studio 2013运行C/C++程序

    0 前言 开始学习C/C++了,肯定首先要找一个能运行程序的软件,很多人都有不同的推荐,如devc++.codeblocks,VC++6.0,Visual Studio 20XX,我们本科学习数据结构 ...

最新文章

  1. java代码使用http请求解压zip包并解析xml_Javascript 是如何解析 Excel 文件的?
  2. python贴吧发帖脚本-Python实现自动添加脚本头信息的示例代码
  3. C++ 编程错误记录
  4. 计算机制图国家规范,竣工图绘制相关国家规范
  5. 【Linux】9_存储管理交换分区管理Swap
  6. python 时序数据库_时序数据库InfluxDB
  7. php如何检测图片背景是白色,javascript – 用PHP检测白色图像背景?
  8. 热敏电阻温度特性曲线_NTC热敏电阻如何选型
  9. wordpress教程:默认http头信息X-Pingback的隐藏与修改
  10. 良心帖!看完这篇,你的 Python 入门基础就差不多了!
  11. 机器为内容“体检”?AI算法这样解构内容创作理解
  12. [20171106]配置客户端连接注意.txt
  13. Luogu2730 魔板 Magic Squares
  14. JavaWbe中文乱码解决方案
  15. 经纬度坐标转换xy坐标 python_Python 高斯坐标转经纬度算法
  16. 冲刺IPO:Soul在深红市场打开的社交元宇宙
  17. 面试题67. 把字符串转换成整数
  18. CVE-2021-1647 Windows Defender缓冲区溢出导致的任意代码执行漏洞复现
  19. 智能风控平台核心之风控决策引擎(一)
  20. Typora的下载及MarkDown使用

热门文章

  1. 华为手机如何升级鸿蒙系统_能运行EMUI 11才能升级到鸿蒙2.0,只有这些手机能升级,有你的吗...
  2. 薪资1.5万,学习IT让我重新找到方向
  3. android控件跟随手势滑动改变位置
  4. 动态规划解决方案最长公共子序列问题(开启)
  5. shell学习之shell执行方式及排错
  6. 巧解SEP杀毒软件卸载需要密码才能完全卸载问题
  7. No subject
  8. beats 耳机 android,Beats耳机app
  9. java socket抓取资源_Java 通过 Socket 的形式抓取网页内容
  10. html服务流程如何实现_朱传燕:美容院如何规范服务流程,提升专业口碑