线性表基本概念
线性表/线性结构
线性表(linear list)是若干个数据元素的有限序列,每个数据元素可由若干数据项组成;
线性表的特点有:在数据元素的非空有限集中,
- 存在唯一的称之为“第一个”和“最后一个”元素;
- 除“第一个”元素(first/front)外,每一个元素有且仅有一个直接前驱(predecessor);
- 除“最后一个”元素(last/rear)外,每一个元素有且仅有一个直接后继(successsirr);
抽象数据类型/ADT
ADT提供多种方法,用于设计与语言无关的新型数据类型;设计ADT时,着重于利用数据实现什么,忽略如何表示数据于操作数据等底层细节(设计与实现剥离),ADT是一种向用例隐藏内部表示的数据类型;
线性表在计算机中的应用
静态数据结构(static data structure)/顺序存储结构/密集表(dense list):将有序列表通过连续分配空间来存储;
- 随机存取简单,读取修改数据简单,时间复杂度为O(1) ;
- 删除/增加数据时,需要移动大量数据,时间复杂度为O(n) ;
- 内存分配在编译时已确定,容易造成内存浪费;
动态数据结构(dynamic data structure)/链表结构(linked list,简称链表):将数据通过不连续存储空间来存储;
- 指针类型是典型,逻辑上相邻的元素物理上不必要相邻;
- 数据插入/删除,时间复杂度为O(1) —>查找数据时必须按照顺序查找,时间复杂度为O(n) ;
- 内存分配在程序执行时发生,不需要事先声明(静态数据结构);
所有博文来自个人为知笔记,内容多为读书笔记和理解内容;