2.2 线性表的顺序表示

  1. 顺序表基本操作:

    1. 插入操作:最坏情况O(n),最好情况O(1),平均情况O(n)

    2. 删除操作:最坏情况O(n),最好情况O(1),平均情况O(n)

    3. 按值查找:最坏情况O(n),最好情况O(1),平均情况O(n)

2.3 线性表的链式表示

  1. 头结点:在单链表第一个结点之前附加一个结点,称头结点。头结点的数据域可以不设任何信息,也可以记录表长等相关信息。

    • 引入头结点优点:

      • 链表第一个位置操作和其他位置一致,无须进行特殊处理

      • 无论链表是否为空,头指针都指向头结点的非空指针,空表和非空表处理统一

  2. 单链表操作:

    1. 头插法建立:插入时间O(1),设链表长度n,总时间复杂度O(n)

    2. 尾插法建立:同头插

    3. 按序号查找结点值:时间复杂度O(n)

    4. 按值查找表结点:时间复杂度O(n)

    5. 插入结点操作:查找复杂度O(n),插入复杂度O(1)

    6. 删除节点操作:查找复杂度O(n),删除复杂度O(1)

    7. 求表长操作:复杂度O(n)

  3. 双链表:指向前驱节点和后继结点

  4. 循环链表:最后一个结点的指针指向头结点

  5. 循环双链表:头结点的前驱指针指向尾结点

  6. 静态链表:借助数组描述链式结构,指针域存放结点的数组下标,静态链表也要预先分配一块连续的内存空间

  7. 顺序表和链表的比较:

    • 存取方式:顺序表可以顺序和随机存取,链表只能从表头存取

    • 逻辑结构和物理结构:顺序表逻辑相邻,物理位置也相邻;链表逻辑相邻,物理位置不一定相邻

    • 查找、插入和删除元素:

      • 对按值查找:顺序表无序时,两者都O(n),顺序表有序时,折半查找O(log2n)

      • 按序号查找:顺序表O(1),链表O(n)。顺序表插入删除平均要移动半个表长元素,链表插入三删除只修改相关结点的指针域即可。链表存储密度小,因为有指针存储。

    • 空间分配:顺序表需要预先分配足够大的存储空间;链式存储的结点空间在需要时分配,操作灵活

  8. 顺序存储同样适用图和树的存储

数据结构(2) -- 线性表的顺序表示相关推荐

  1. 数据结构之线性表(顺序表和链表)

    线性表 首先线性表的定义就是:零个或多个数据元素的有限序列. 列如高考前每个班级排队照准考证,这个队伍就可以看做一个线性表,大家都井然有序的排着队,是一个有限的序列,一个班就那么几十个人,而且每个人之 ...

  2. 【数据结构】 线性表的顺序表

    线性表是一种最为常用的数据结构,包括了一个数据的集合以及集合中各个数据之间的顺序关系.线性表从数据结构的分类上来说是一种顺序结构.在Python中的tuple,list等类型都属于线性表的一种. 从抽 ...

  3. 数据结构 2-2 线性表的顺序表实现

    一.概念 线性表有两种实现方式,顺序表和链表,顺序表作为较简单的实现方式,可以借用数组来实现.顺序表和链表各有各自的优缺点,这是由其性质所决定的,在选择时要根据题目要求,灵活进行选择. 二.定义 以C ...

  4. 数据结构之线性表:顺序线性表 Java 实现(底层基于数组)

    代码实现 package top.gldwolf.java.datastructure.lineartable;/*** 顺序线性表* @param <T> 存储的元素类型*/ publi ...

  5. 【数据结构】线性表4——顺序表和链表的比较

    文章目录 顺序表和链表的比较 单链表.循环链表和双向链表的时间效率比较 顺序表和链表的优缺点比较 顺序表和链表的基本操作比较 实现线性表时,用顺序表还是链表好? 顺序表和链表的逻辑结构都是线性结构,都 ...

  6. 1-2、数据结构线性表之顺序表的基本操作插入、删除、遍历、初始化

    学习需要记录,更需要温习! 上一篇我们总结了什么是线性表,线性表的ADT类型,线性表的两种存储类型顺序存储结构和链式存储结构,今天正式进入线性表的顺序存储结构的总结和归纳,也就是数据结构的线性表的顺序 ...

  7. 大一新生必看,自学必看,里昂详解数据结构之线性表

    数据结构之线性表(顺序表) 有幸掌握浅薄知识,不吝分享,保持独立思考,自主学习,共同进步.另求关注,点赞,评论,感谢!(tips:主页有数据结构全部知识点,以及知识点讲解,建立完善的数据结构知识体) ...

  8. 数据结构-线性表的顺序结构

    1 #include "stdio.h" 2 #include "stdlib.h" 3 4 typedef int ElemType; //线性表存储基本类型 ...

  9. 数据结构源码笔记(C语言):线性表的顺序表示

    /* SeqList.c*/ /*线性表的顺序表示:函数实现*/#include <stdio.h> #include <stdlib.h> //#include " ...

  10. 数据结构——绪论以及线性表的顺序表示

    绪论 数据类型 数据类型是一个值的集合和定义在此集合上一组操作的总称. (1)原子类型:其值不可再分的数据类型,如int,char,float. (2)结构类型:其值可以再分解为若干成分的数据类型. ...

最新文章

  1. 建站常用13种PHP开源CMS比较
  2. Virtual DOM的简单实现
  3. 历届试题 打印十字图
  4. Pod详解-生命周期-概述
  5. byte[]、sbyte[]、int[]以及Array的故事
  6. JVM运行时内存分区
  7. 日本新年传统习俗介绍(二)
  8. CY7C68013 USB接口相机开发记录 - 第一天:资料下载
  9. 量子力学原理-波恩的概率论
  10. 语言表达能力强的人真的就情商高吗?
  11. 2019长江课堂作业答案_2019长江作业本同步练习册九年级数学参考答案,人教版!...
  12. 08-HTML5详解(二)
  13. iOS: 仿新浪微博 OC (持续更新ing)
  14. arnold降噪denoise官方教程
  15. 游戏鼠标的dpi测试软件,自己就可以测试鼠标的DPI
  16. ISAM、MyISAM、InnoDB、ACID详解
  17. 【soft6星评论】中台只是一种说法,中小企业主们要擦亮眼睛
  18. JZOJ-senior-5952. 【NOIP2018模拟11.5A组】凯旋而归
  19. gBuilder内测活动圆满收官
  20. android studio运行的时候出现Unable to obtain debug bridge错误的解决办法

热门文章

  1. C++的深拷贝与浅拷贝
  2. 【网络编程】之五、异步模型
  3. 数据结构与算法 | 二叉树四种的遍历方法(递归与非递归)
  4. 网络编程之Socket【Python】
  5. ​Golang 并发编程指南
  6. 12种提升视频质量的方法
  7. 从0到1,马蜂窝大交通团队如何构建高效研发流程体系?
  8. 参加腾讯DevDays是一种什么样的感受?
  9. VSCode配置Python编辑器
  10. Nginx模块学习之————accesskey权限模块使用(简单的m3u8防盗链)