1 链表

1.1 为什么需要链表

顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充时又需要进行数据的搬迁,所以使用起来并不是很灵活。

链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。

1.2 链表的定义

链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是不像顺序表一样连续存储数据,而是在每一个节点(数据存储单元)里存放下一个节点的位置信息(即地址)。

1.3 单向链表

单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值。

*表元素域elem用来存放具体的数据。

*链接域next用来存放下一个节点的位置(python中的标识)

*变量p指向链表的头节点(首节点)的位置,从p出发能找到表中的任意节点。

1.3.1   单链表的操作

  • is_empty() 链表是否为空
  • length() 链表长度
  • travel() 遍历整个链表
  • add(item) 链表头部添加元素
  • append(item) 链表尾部添加元素
  • insert(pos, item) 指定位置添加元素
  • remove(item) 删除节点
  • search(item) 查找节点是否存在

1.4 链表和顺序表的对比

链表失去了顺序表随机读取的优点,同时链表由于增加了结点的指针域,空间开销比较大,但对存储空间的使用要相对灵活。

数据结构和算法 D3相关推荐

  1. MySQL索引背后的数据结构及算法原理【转】

    http://blog.codinglabs.org/articles/theory-of-mysql-index.html MySQL索引背后的数据结构及算法原理[转] 摘要 本文以MySQL数据库 ...

  2. MySQL索引背后的数据结构及算法原理--转

    MySQL索引背后的数据结构及算法原理 作者 张洋 | 发布于 2011-10-18 MySQL 索引 B树 优化 原文地址:http://blog.codinglabs.org/articles/t ...

  3. mysql索引背后的数据结构及算法

    摘自:http://blog.jobbole.com/24006/ 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引 ...

  4. MySQL索引背后的数据结构及算法原理zz

    摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持 也各不相同,因此MySQL数据库支持多种索引类型,如B ...

  5. 【转载】MySQL索引背后的数据结构及算法原理

    本文转载自http://blog.jobbole.com/24006/ 摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储 ...

  6. MySQL索引背后的数据结构及算法原理----惊叹的深入

    原文出处: 张洋    摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库 ...

  7. mysql 按时间累计计算_精通MySQL索引背后的数据结构及算法原理

    本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,mysql支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree ...

  8. mysql数据库算法_数据库:MySQL索引背后的数据结构及算法原理【转】

    原文:http://blog.codinglabs.org/articles/theory-of-mysql-index.html 摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话 ...

  9. MySQL索引背后的数据结构及算法原理-转

    转  http://www.codinglabs.org/html/theory-of-mysql-index.html 摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需 ...

最新文章

  1. Ubuntu 使用 heirloom-mail 调用外部邮箱 SMTP 服务器发送邮件
  2. 舞蹈里需要用计算机的地方,【舞蹈教学论文】计算机多媒体技术在舞蹈教学中的应用(共2080字)...
  3. opencv C++ 三重for循环遍历RGB图像像素(逐像素操作、操作像素值、遍历像素遍历)at<typename>(i,j)、灰度图at<uchar>、at<Vec3b>、at<Vec3F>
  4. 启明云端分享 | SSD201\SSD202D 核心板如何批量烧录,母片制作教程分享
  5. List和Set集合使用
  6. Sharding-Jdbc实现读写分离、分库分表,妙!
  7. java 解析数据包_java - 如何在Java中正确解析TCP数据包? - 堆栈内存溢出
  8. 防止恶意登录的设计思路
  9. Android安全-代码安全1-ProGuard混淆处理
  10. C语言学生管理系统源代码
  11. windbg中ntsd使用用户态调试器链接到内核调试器的常用技巧
  12. Unity3D设置天空盒skybox
  13. ApiPost 测试工具
  14. pandownload如何使用cookie登录百度网盘账号
  15. C语言链表详解(通俗易懂)
  16. 《炬丰科技-半导体工艺》Micro-LED 显示器量化生产关键技术
  17. Codeforces1221 C. Perfect Team
  18. 极客学院ios开发工程师系列课程
  19. 计算机老师任课教师寄语,任课老师新学期寄语
  20. JVAV中常见的十大异常

热门文章

  1. “wget”不是内部或外部命令,也不是可运行的程序或批处理文件
  2. Python+OpenCV:图像梯度
  3. VC++的链接错误LNK2001
  4. SylixOS中AARCH64跳转表实现原理
  5. IDC带宽测试几款软件(Multiping pingPlotter TracertGUI )
  6. HoloLens开发手记-世界坐标系 Coordinate systems
  7. POJ 3308 最少点集覆盖
  8. 不一样的三一重工:重在选择 —— 三一集团CIO潘睿刚专访系列之一
  9. Android Junit测试
  10. 一步一个脚印学习WCF系列之WCF概要—WCF与SOA(二)