数据结构(2) -- 线性表的顺序表示
2.2 线性表的顺序表示
顺序表基本操作:
插入操作:最坏情况O(n),最好情况O(1),平均情况O(n)
删除操作:最坏情况O(n),最好情况O(1),平均情况O(n)
按值查找:最坏情况O(n),最好情况O(1),平均情况O(n)
2.3 线性表的链式表示
头结点:在单链表第一个结点之前附加一个结点,称头结点。头结点的数据域可以不设任何信息,也可以记录表长等相关信息。
引入头结点优点:
链表第一个位置操作和其他位置一致,无须进行特殊处理
无论链表是否为空,头指针都指向头结点的非空指针,空表和非空表处理统一
单链表操作:
头插法建立:插入时间O(1),设链表长度n,总时间复杂度O(n)
尾插法建立:同头插
按序号查找结点值:时间复杂度O(n)
按值查找表结点:时间复杂度O(n)
插入结点操作:查找复杂度O(n),插入复杂度O(1)
删除节点操作:查找复杂度O(n),删除复杂度O(1)
求表长操作:复杂度O(n)
双链表:指向前驱节点和后继结点
循环链表:最后一个结点的指针指向头结点
循环双链表:头结点的前驱指针指向尾结点
静态链表:借助数组描述链式结构,指针域存放结点的数组下标,静态链表也要预先分配一块连续的内存空间
顺序表和链表的比较:
存取方式:顺序表可以顺序和随机存取,链表只能从表头存取
逻辑结构和物理结构:顺序表逻辑相邻,物理位置也相邻;链表逻辑相邻,物理位置不一定相邻
查找、插入和删除元素:
对按值查找:顺序表无序时,两者都O(n),顺序表有序时,折半查找O(log2n)
按序号查找:顺序表O(1),链表O(n)。顺序表插入删除平均要移动半个表长元素,链表插入三删除只修改相关结点的指针域即可。链表存储密度小,因为有指针存储。
空间分配:顺序表需要预先分配足够大的存储空间;链式存储的结点空间在需要时分配,操作灵活
顺序存储同样适用图和树的存储
数据结构(2) -- 线性表的顺序表示相关推荐
- 数据结构之线性表(顺序表和链表)
线性表 首先线性表的定义就是:零个或多个数据元素的有限序列. 列如高考前每个班级排队照准考证,这个队伍就可以看做一个线性表,大家都井然有序的排着队,是一个有限的序列,一个班就那么几十个人,而且每个人之 ...
- 【数据结构】 线性表的顺序表
线性表是一种最为常用的数据结构,包括了一个数据的集合以及集合中各个数据之间的顺序关系.线性表从数据结构的分类上来说是一种顺序结构.在Python中的tuple,list等类型都属于线性表的一种. 从抽 ...
- 数据结构 2-2 线性表的顺序表实现
一.概念 线性表有两种实现方式,顺序表和链表,顺序表作为较简单的实现方式,可以借用数组来实现.顺序表和链表各有各自的优缺点,这是由其性质所决定的,在选择时要根据题目要求,灵活进行选择. 二.定义 以C ...
- 数据结构之线性表:顺序线性表 Java 实现(底层基于数组)
代码实现 package top.gldwolf.java.datastructure.lineartable;/*** 顺序线性表* @param <T> 存储的元素类型*/ publi ...
- 【数据结构】线性表4——顺序表和链表的比较
文章目录 顺序表和链表的比较 单链表.循环链表和双向链表的时间效率比较 顺序表和链表的优缺点比较 顺序表和链表的基本操作比较 实现线性表时,用顺序表还是链表好? 顺序表和链表的逻辑结构都是线性结构,都 ...
- 1-2、数据结构线性表之顺序表的基本操作插入、删除、遍历、初始化
学习需要记录,更需要温习! 上一篇我们总结了什么是线性表,线性表的ADT类型,线性表的两种存储类型顺序存储结构和链式存储结构,今天正式进入线性表的顺序存储结构的总结和归纳,也就是数据结构的线性表的顺序 ...
- 大一新生必看,自学必看,里昂详解数据结构之线性表
数据结构之线性表(顺序表) 有幸掌握浅薄知识,不吝分享,保持独立思考,自主学习,共同进步.另求关注,点赞,评论,感谢!(tips:主页有数据结构全部知识点,以及知识点讲解,建立完善的数据结构知识体) ...
- 数据结构-线性表的顺序结构
1 #include "stdio.h" 2 #include "stdlib.h" 3 4 typedef int ElemType; //线性表存储基本类型 ...
- 数据结构源码笔记(C语言):线性表的顺序表示
/* SeqList.c*/ /*线性表的顺序表示:函数实现*/#include <stdio.h> #include <stdlib.h> //#include " ...
- 数据结构——绪论以及线性表的顺序表示
绪论 数据类型 数据类型是一个值的集合和定义在此集合上一组操作的总称. (1)原子类型:其值不可再分的数据类型,如int,char,float. (2)结构类型:其值可以再分解为若干成分的数据类型. ...
最新文章
- 建站常用13种PHP开源CMS比较
- Virtual DOM的简单实现
- 历届试题 打印十字图
- Pod详解-生命周期-概述
- byte[]、sbyte[]、int[]以及Array的故事
- JVM运行时内存分区
- 日本新年传统习俗介绍(二)
- CY7C68013 USB接口相机开发记录 - 第一天:资料下载
- 量子力学原理-波恩的概率论
- 语言表达能力强的人真的就情商高吗?
- 2019长江课堂作业答案_2019长江作业本同步练习册九年级数学参考答案,人教版!...
- 08-HTML5详解(二)
- iOS: 仿新浪微博 OC (持续更新ing)
- arnold降噪denoise官方教程
- 游戏鼠标的dpi测试软件,自己就可以测试鼠标的DPI
- ISAM、MyISAM、InnoDB、ACID详解
- 【soft6星评论】中台只是一种说法,中小企业主们要擦亮眼睛
- JZOJ-senior-5952. 【NOIP2018模拟11.5A组】凯旋而归
- gBuilder内测活动圆满收官
- android studio运行的时候出现Unable to obtain debug bridge错误的解决办法