美文网首页
C中线性表和链表的区别

C中线性表和链表的区别

作者: NSGhoul | 来源:发表于2016-10-08 15:28 被阅读0次

最近经常听到朋友面试有被问到链表的问题,自己也总结了一下,应该算是比较入门向的介绍吧


线性表(数组)

数据与元素一一对应 除了第一个和最后一个其他数据元素首位相接

顺序表

线性表中用地址连续的存储单元来存放数据元素的数据结构,结点放在地址连续的存储单元中(实现方式为数组)——

链表

①物理存储单元上非连续,非顺序的存储结构(内存之中不连续)

②数据元素之间的逻辑顺序是通过链表中的指针链接次序实现

③链表由一系列结点组成(链表中的元素称为结点),结点可以在运行时动态生成

④结点包括两个部分:1.存储数据元素的数据域

                                    2.存储下一个结点地址的指针域

(实现方式为指针)

ps1:尾结点 指针域为null,若尾结点指针指向首结点,那么构成环形链表

相对于线性表的优势

①链表比较方便插入和删除操作,线性表中插入一个元素,那么后面的元素地址都要往后移,删除同理。而链表只需要修改结点中的指针信息,不需要修改结点地址。

②线性表在建立时就确定的总长度 因此初始长度过大或者过小都会引起内存问题:如果内存中没办法一次性给出整个线性表所需的存储空间那么就会提示内存不足,链表可以用分散的存储空间

③链表的扩展性比线性表(数组)好,一个线性表在建立后空间大小是固定的,要扩展只能新建一个更大的,而链表可以很方便的扩展

线性表相对于链表的优势

①线性表存储空间小,因为链表要在存储单元里放一个或者两个指针(双向链表)

②线性表内容可以随机访问,因为是连续的内存单元,地址连续所以在这个区间内可以进行随机,链表存储地址

③查找速度由于存储地址原因也快于链表

双向链表

一句话 结点中有两个指针 一个指针指向直接前驱,一个指针指向直接后继

优势:查找更方便,用于大量数据的遍历

相对于单向 存储空间也更大

相关文章

  • 顺序表和链表的区别

    参考:线性表和链表的区别 注:参考文中的‘线性表’准确的说应该是’顺序表‘,链表与顺序表都是线性表。 顺序表:顺序...

  • 大数据(架构师)面试系列(5)

    1.数组与链表的区别是什么? 线性表--数组和链表的区别链表和数组的区别在哪里? 2.Scala函数式编程的特点?...

  • C中线性表和链表的区别

    最近经常听到朋友面试有被问到链表的问题,自己也总结了一下,应该算是比较入门向的介绍吧 线性表(数组) 数据与元素一...

  • 数据结构-双向链表

    (一)什么是链表? 链表是线性表的一种,所谓的线性表包含顺序线性表和链表,顺序线性表是用数组实现的,在内存中有顺序...

  • 线性表(三)——双向链表的表示和实现

    在上篇文章中我们分析讨论了线性表的链式存储结构。链式存储结构表示的线性表主要分为单链表、单循环链表和双向循环链表三...

  • 链表和数组的区别在哪里

    链表和数组都属于线性表,都是顺序表。区别在于,链表是逻辑连续,数组是物理连续。 链表不要求每个节点占用的内存连续,...

  • 链表简介

    链表简介 一.什么是链表 链表和数组都是一种线性表,链表跟数组的区别主要是数组是连续的,所以可以通过下标来访问元素...

  • 数据结构-单向链表

    一、线性表 线性表可以分为: 顺序表(数组) 链表(单向链表、双向链表、循环链表) 二、链表 链表是一种链式存储的...

  • 插入任意数据形成有序单链表并逆置单链表

    可直接运行的完整C语言版有序单链表的生成和逆置标签:数据结构、线性表、带头结点的单链表、逆置单链表欢迎与喜欢数据结...

  • 数据结构-线性表

    归纳 线性关系、线性表的定义,线性表的基本操作。 线性表的顺序存储结构与链式存储结构(包括单(向)链表、循环链表和...

网友评论

      本文标题:C中线性表和链表的区别

      本文链接:https://www.haomeiwen.com/subject/fqbuyttx.html