数据结构——线性表:顺序表、单向链表、循环链表、双向链表
线性表
是一种数据结构:n个数据元素的有限序列
表示形式: L = (a1,a2...an)
a1是线性表的元素,小写。
n=0时候为空表
数据元素具有相同特性
相邻元素之间存在序偶关系:即有唯一的第一和最后一个元素,除了第一个元素外,每个元素有且只有一个前驱,除最后一个元素外,有且只有一个后继。
定义数据类型构成list:
怎么具体实现
存储结构:顺序、链式
线性表的顺序存储结构:顺序表 (逻辑结构和物理结构相同)
线性表的链式存储结构:链表
顺序表
顺序:用一组地址连续的存储空间依次存储线性表的数据元素。
顺序表的特点:逻辑结构与存储结构一致。访问每个数据元素花费时间相等。这种方法称为随机存储结构。
表示方法:用一维数组
线性表的基本操作:
初始化、销毁、清空、判断是否为空、求长度、取第i个元素、检索L中的元素e、插入、返回、删除、遍历、...
例如:
顺序表的应用:
最大前缀子集:就是相同
解题思路:
线性表的 链式表示和实现
顺序表的局限:插入和删除都要移动大量元素,耗费时间。
好的地方:随机存储
链式存储:用一组任意存储单元存放线性表
存储单元不要求连续:物理结构不反映逻辑结构
不可以随机存取,但插入和删除方便
需要两个域:一个表示数据本身,一个表示数据元素的先后关联。
结点中表示关联的部分为指针。
取元素的话,顺序表更快。 单链表慢一点,要一个个往下找。
单链表取第i个元素: 时间更多
顺序表取第i个元素:时间更快
单链表的插入操作:
循环链表:
双向链表:
双向循环链表:
数据结构——线性表:顺序表、单向链表、循环链表、双向链表相关推荐
- 数据结构与算法之反转单向链表和双向链表
数据结构与算法之反转单向链表和双向链表 目录 反转单向链表和双向链表 1. 反转单向链表和双向链表 题目描述 代码实现 public class Code_ReverseList {public st ...
- 《恋上数据结构第1季》单向链表、双向链表
链表(Linked List) 链表的接口设计 单向链表(SingleLinkedList) 获取元素 – get() 清空元素 – clear() 添加元素 – add(int index, E e ...
- JavaScript数据结构(3):单向链表与双向链表
翻译:疯狂的技术宅 说明:本文翻译自系列文章<Data Structures With JavaScript>,总共为四篇,原作者是在美国硅谷工作的工程师 Cho S. Kim .这是本系 ...
- rsa算法c语言实现_数据结构与算法之线性表-顺序表实现(C语言版本)
原文托管在Github: https://github.com/shellhub/blog/issues/52 数据结构与算法之线性表-顺序表实现(C语言版本) 前言 数据结构与算法是一个程序员必备的 ...
- 线性表→顺序表→链表 逐个击破
一. 线性表 1. 前言 线性表,全名为线性存储结构.使用线性表存储数据的方式可以这样理解,即 " 把所有(一对一逻辑关系的)数据用一根线儿串起来,再存储到物理空间中 ".这根线有 ...
- 线性表-顺序表的基本操作
线性表的定义和特点 线性表:由n(n≥0)个数据特性相同的元素构成的有限序列 线性表中元素的个数n(n≥0)称为线性表的长度 空表:n=0 对于非空的线性表或线性结构,特点为: 存在唯一的一个被称作& ...
- [数据结构]数据结构简介和顺序表
目录 什么是数据结构 数据结构的特性 线性表 顺序表 创建一个动态顺序表 顺序表的增删查改 尾插和尾删除 尾插 头插头删 头插 头删 任意位置的插入和删除 插入 删除 查找和打印 总结 这天,小明和小 ...
- 数据结构之——《顺序表》
数据结构之--<顺序表> 1.含义 2.分类 3.接口函数实现 4.顺序表的优缺点 1.含义 顺序表示用一段纹理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储,在数组 ...
- 数据结构学习心得——顺序表
一.线性表的定义 线性表是具有相同特性数据元素的一个有限序列.该序列中所含元素的个数叫做线性表的长度,用n(n>0)表示. 二.线性表的存储结构 线性表的存储结构有顺序存储和链式存储两种.前者称 ...
- 【数据结构】【顺序表】 SqList *L与SqList*L的区别
[数据结构][顺序表] SqList *&L与SqList*L的区别 显然,对于顺序表的抽象数据模型中的函数,其参数使用各不相同. SqList *&L的情况 它的意思是,L是对Lis ...
最新文章
- 从请求管道深入剖析HttpModule的实现机制,有图有真相
- JavaScript几个小技巧
- Python中的sort()方法使用基础
- POJ - 1190 生日蛋糕(dfs+剪枝)
- 一些移动端开发的细节记录
- css比较特殊选择器汇总(持续更新)
- Android Studio 修改项目包名(Xposed)
- Tampermonkey 编写一个首页跳转的脚本
- 9.Jenkins 权威指南 --- Jenkins 维护
- 两端“弱智”的HTML代码
- 程序员工资高,到底程序员的工资有多高?你不了解的程序员!
- opencv学习笔记(三)分离颜色通道多通道颜色混合
- rust货轮什么时候出现_中国最早的汉字出现于什么时候?
- python打砖块游戏算法设计分析_Python打砖块
- Elasticsearch(006):es中filtered和filter的区别
- opcode php 5.4,为PHP5.4开启Zend OPCode缓存
- 为什么“码农”需要自我营销?
- c4d在运行时候显示计算机内存不足,C4D R19 保存空文档时显示没有足够内存怎么办 空文档都不行 存哪都不行...
- 怎样取消关注别人的csdn博客
- 文献阅读笔记-CSC-数据集-A Hybrid Approach to Automatic Corpus Generation for Chinese Spelling Check