时间:2014.04.26

地点:基地

—————————————————————————

一、题目

题目是非常easy和基础,就是在单链表的第i个位置后插入一个节点。要求写代码,5分钟之内完毕。面腾讯和阿里的同学都有面到,于是总结几个技巧。这样的限时写代码往往一紧张尽管特基础但稍加不注意也非常容易出错。

—————————————————————————

二、分析

1.先依照一般的步骤,我们要得到第链表第i个位置的指针。

2.然后再在刚刚得到的指针之后插入新节点

Node* ListLocate(Node* head_ptr,size_t position)
{Node* curosr=nullptr;for(size_t i=1;(i<position)&&(cursor!=nullptr);++i)cursor=cursor->get_link();return cursor;
}
const Node* ListLocate(const Node* head_ptr,size_t position)
{const Node* curosr=nullptr;for(size_t i=1;(i<position)&&(cursor!=nullptr);++i)cursor=cursor->get_link();return cursor;
}
void ListInsert(Node* previous_ptr;const Node::value_type& entry)
{   Node* insert_ptr=new Node(entry,previous_ptr->get_link());previous_ptr=insert_ptr;
}

—————————————————————————

三、总结

这里获得第i个位置的指针写了两个版本号,即为提供通用性,当然这里对于题目要求的是多余的,由于题目要求是肯定要通过指针改动链表。个人比較喜欢固定一种模式,即经常使用的代码编写模式,假设算法实现原理是一样的,仅仅是在代码的表现上有所差别,我认为就不是必需花心思耍花样。今天用cursor遍历链表,明天用list_ptr遍历链表,往后也不easy出错。

在链表的实现中比方还可提炼几种编码规范:

1.使用cursor遍历链表指针

for(Node* head_ptr;cursor!=nullptr;cursor=curosr->get_link())
{.......
}

2.提供两个版本号的编号定位节点的函数或者匹配定位节点的函数

转载于:https://www.cnblogs.com/yxwkf/p/5417867.html

在单链表的第i个位置后插入一个节点(阿里+腾讯等面试题总结)相关推荐

  1. 求单链表的最大值与原地逆转_江西师范大学硕士学位研究生入学考试数据结构试题(2003年)一.doc...

    江西师范大学硕士学位研究生入学考试 数据结构 试题 (2003年) 选择题(每空2分,共20分) 1. 设一个栈的输入序列为A,B,C,D,则借助一个栈所得到的输出序列不可能是 . (1)A,B,C, ...

  2. 单链表的头插法尾插法及删除节点操作

    带头节点的单链表的头插法尾插法及删除节点操作 链表的操作对于初学者来说理解非常有难度,初学的同学们应该在学习链表的过程中多再练习本上画图,写一行代码就画出代码执行后链表各节点图的变化,方便理解.我也是 ...

  3. 在单链表(带头结点)中的第i个位置前面插入一个新结点的初始化问题

    方法: 想要在链表第i个元素前面插入新结点,则需要将指针指向第i-1个元素,从而将其next域中保存的第i个元素地址赋值给新结点,实现链接. void InserttoList(LinkList he ...

  4. 单链表逆置 java_单链表的就地逆置--java实现(含头节点和不包含头节点)

    前沿:链表是面试中经常问道的知识点,比如链表反转,就地反转,判断单链表是否相交,判断链表是否有环等都是常问的问题.今天说一下单链表就地反转. 本文从包含头节点和不包含头节点两种链表都提供了相应的就地反 ...

  5. 链表相关操作:创建链表、遍历链表、求链表长度、链表中删除一个节点、链表中插入一个节点、反转单链表...

    1 #include<iostream> 2 #include<stdlib.h> 3 4 typedef struct node 5 { 6 int data; 7 stru ...

  6. 146_路由器项目_附加功能:可以拿取文件内IP保存到过滤链表中,过滤IP也可以保存到txt文件,也可以终端输入IP,保存到文件【单链表的尾插、头插、删除指定节点、遍历等】】

    动图: ip_file.h: #ifndef IP_FILE_H #define IP_FILE_H #include <stdio.h> #include <string.h> ...

  7. 数据结构 - 如何找到有环单链表的环的入口位置(C++)

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! temp ...

  8. C语言单链表求环,并返回环的起始节点

    若链表中存在环,找出其中的环所在的节点,否则,返回NULL 在没有C++ set容器的优势前提下,我们对这样的环型的寻找以及定位可以利用快慢指针来实现. 有环的存在,类似与操场跑圈,必然存在快慢之分. ...

  9. 在无头单链表的一个非头节点前插入一个节点(C语言)

    ①时间复杂度为N: void InsertNotHead(PSListNode pHead, PSListNode pos, DataType data) {PSListNode pPreNode = ...

最新文章

  1. 李艳芳北京应用物理与计算机,太赫兹量子级联激光器有源区增益分析和设计-太赫兹科学与电子信息.PDF...
  2. Go语言基础语法--注释、基础结构2
  3. 说说你对http、https、http2.0的理解【前端每日一题-25】
  4. 事件绑定、事件监听、事件委托
  5. 2013_hangzhou_online
  6. python format格式化输出填充符号不起作用_Python格式化输出——format用法示例
  7. Matlab Tricks(十二)—— 矩阵阈值化的实现
  8. AutoCAD打印设置
  9. spss26没有典型相关性分析_SPSS执行典型相关性分析,出现下面错误,怎么回事??...
  10. 动词,名词记忆(2): ise,ize,en后缀常用词
  11. JVM垃圾收集器分类
  12. 2021-04-30 AndroidStudio_3种按钮点击事件_小白龙抄作业
  13. Could not resolve hostname github: Name or service
  14. ceac计算机考试试题,计算机ceac考试复习题12套.doc
  15. ubuntu命令 图片 壁纸_一个命令安装旧版Ubuntu发布的壁纸
  16. P1024 [NOIP2001 提高组] 一元三次方程求解
  17. 计算机数据存储原理 以及 进制
  18. 雅虎开始关闭韩国业务并裁员 200 人
  19. java hashmap 去重_HashMap去重 - osc_sj1kgo4z的个人空间 - OSCHINA - 中文开源技术交流社区...
  20. html文件损坏,PPT文件损坏怎么修复?

热门文章

  1. newlisp 接受jenkins带空格的参数
  2. Codeforces Round #312 (Div. 2)
  3. 字符字节Base64编码
  4. ORACLE NOT EXISTS不等值 改写成hive
  5. * 星号的居中 文本处理样式的总结
  6. 一个封装的使用Apache HttpClient进行Http请求(GET、POST、PUT等)的类。
  7. 程序员为什么不会修电脑?
  8. 设计模式-行为-Iterator(迭代器)模式
  9. “TI门外汉”网路知识笔记七 快速以太网通道
  10. Python出现SyntaxError: Non-ASCII character '\xe7' in file 错误的解决办法