线性表11|单链表小结:腾讯面试题

让编程改变世界

Change the world by program


静态链表的删除操作

我们的故事还没结束,小C看到小A和2B这样非法的勾当,内心觉得很不爽,一句话也不说就离开了队伍。。。。。。 我们先在图上实践一下,然后研究代码:   [caption id="attachment_1938" align="alignnone" width="580"] 静态链表的删除操作[/caption] 代码:ListDelete.c

静态链表优缺点总结

优点:

在插入和删除操作时,只需要修改游标,不需要移动元素,从而改进了在顺序存储结构中的插入和删除操作需要移动大量元素的缺点。

缺点:

没有解决连续存储分配(数组)带来的表长难以确定的问题。 失去了顺序存储结构随机存取的特性。   总的来说,静态链表其实是为了给没有指针的编程语言设计的一种实现单链表功能的方法。 尽管我们可以用单链表就不用静态链表了,但这样的思考方式是非常巧妙的,应该理解其思想,以备不时之需。

单链表小结:腾讯面试题

题目:快速找到未知长度单链表的中间节点。 既然是面试题就一定有普通方法和高级方法,而高级方法无疑会让面试官大大加分! 普通的方法很简单,首先遍历一遍单链表以确定单链表的长度L。然后再次从头节点出发循环L/2次找到单链表的中间节点。 算法复杂度为:O(L+L/2)=O(3L/2)。   能否再优化一下这个时间复杂度呢? 有一个很巧妙的方法:利用快慢指针!   利用快慢指针原理:设置两个指针*search、*mid都指向单链表的头节点。其中* search的移动速度是*mid的2倍。当*search指向末尾节点的时候,mid正好就在中间了。这也是标尺的思想。 我们来看下代码实现:GetMidNode.c   课后作业:写一个完整的程序,实现随机生成20个元素的链表(尾插法或头插法任意),用我们刚才学到的方法快速查找中间结点的值并显示。 程序演示:GetMidNode2.exe [buy] 获得所有教学视频、课件、源代码等资源打包 [/buy] [Downlink href='http://kuai.xunlei.com/d/BdsUAwoJVQCGkxNRe5b']视频下载[/Downlink] [Downlink href='http://urlxf.qq.com/?eAZNreq']备胎下载[/Downlink]

转载于:https://www.cnblogs.com/LoveFishC/archive/2012/11/16/3847255.html

线性表11|单链表小结:腾讯面试题 - 数据结构和算法16相关推荐

  1. C++线性表(单链表)的应用算法(附源码)

    C++线性表(单链表)的应用算法 线性表(单链表)的应用算法: 构造一个递增有序的正整数链表,实现链表分解为一个奇数表和一个偶数表,之后再将两个链表合并一个递减链表. 运行截图 代码实现 /* 线性表 ...

  2. 线性表的单链表存储结构

    文章目录 一.什么是单链表 (一)单链表结点的数据结构 (二)非空单链表数据结构 二.单链表的各个功能实现 (一)初始化 1.算法步骤 2.算法代码 (二)查找元素 1.算法步骤 2.算法代码 (三) ...

  3. 卜若的代码笔记-数据结构系列-第三章:链表-最简单的线性表:单链表

    1.一个最简单的线性表 1.1单链表的特征: a.链表无法通过索引获取链表元素,只能从头开始一个一个的后继去找. b.链表无法找到父节点 1.2结构: 1.3 实现 我们来讨论一下它的时间复杂度: 1 ...

  4. java单链表输出_数据结构基础------1.线性表之单链表的创建与输出方法(Java版)...

    基础知识: 线性表(linear list),是其组成元素间具有线性关系的一种线性结构. 线性表有 ①顺序存储结构(sequential storage structure) 顺序存储结构可以简单的理 ...

  5. 单链表删除所有值为x的元素_线性表之单链表

    单链表 一种以链接方式存储的线性表,适用于频繁增删操作,存储空间不定的情形. 单链表的一个存储结点包含两个域,数据域和指针域.数据域用于存储线性表的一个数据元素,指针域用于指示下一个结点开始的存储地址 ...

  6. 线性表之单链表 图解和代码实现

    线性表的链接存储结构---单链表 图解: LinkList.h文件 //LinkList.h 声明类LinkList #ifndef LinkList_H #define LinkList_H tem ...

  7. 线性表之单链表基本操作

    单链表的定义 线性表的链式存储又称单链表,它是指通过一组任意的存储单元来存储线性表中的数据元素.为了建立数据元素之间的线性关系,对每个链表结点,除存放元素自身的信息外,还需要存放一个指向其后继的指针. ...

  8. 数据结构-线性表之单链表

    文章目录 一:相关概念 (1)什么是链表 (2)链表的优点和缺点 (3)链表的分类 二:实践 (1)准备工作 (2)结构体定义 (3)操作 A:创造头结点(初始化) ①:头结点?头指针? ②:初始化 ...

  9. C++数据结构02--链式线性表(单链表的实现)

    头文件: //实现链式线性表 #include "stdafx.h" using namespace std;typedef int DataType; //将数据类型设为int类 ...

最新文章

  1. Mac下修改环境变量
  2. ios oc数组转换为c语言数组,iOS中将数组作为参数传递给服务器
  3. pb通过对象名称调用对象_C++ 可调用对象(二)
  4. 解决IIS占用CPU和内存大的问题
  5. Leetcode每日一题:290.word-pattern(单词规律)
  6. Intellij IDEA 神级插件
  7. ietester测试本地html,win7系统用IETester测试网站兼容性的方法
  8. python 利用matplolib给绘制的地图添加方框,将所需的区域圈出来
  9. NPOI导出一行多张图片
  10. Java中cvc是什么意思_什么叫自然拼读cvc组合- cvc和cvce单词的区别
  11. 企业快速寄件打单教程
  12. spacy依存分析模型
  13. Python 编辑器哪个好用
  14. java服务器下载文件浏览器无反应
  15. 电脑上照片如何压缩大小?怎么把照片在线压缩?
  16. c++继承 基类 派生类 虚函数
  17. 计算机控制双积分系统,双积分式ADC的原理及如何设计
  18. 药一点医药软件供应商—零售药店管理系统
  19. 下载Docker Compose超时的问题(Fail connect to github-production-release-asset-2e65be.s3.amazonaws.com:443)
  20. C语言实现房贷计算器

热门文章

  1. matplotlib导包
  2. SQL报错:Column count doesn‘t match value count at row 1
  3. android setprogress,progressDialog 为什么设置了setProgress()方法无反应?
  4. solr set java opts_關於 Apache Solr 無法啟動的問題
  5. shell 清楚空格_Cygwin系列(五):Shell命令行初体验
  6. android 属性动画实例,Android属性动画完全解析 中 ,ValueAnimator和ObjectAnimator的高级用法...
  7. css3动画 --- Animation
  8. 【Docker系列教程之三】Docker容器是如何工作的
  9. leetcode_Basic Calculator II
  10. skywalking环境搭建及使用