#ifndef VECTORLIST_H #define VECTORLIST_H #include<iostream> #include"linearlist.h" #include<vector> #include<myexceptions.h> using namespace std; template<class T> class vectorList : public linearList<T> { public:…
数据结构还是很早之前学的了,当时才刚学过C语言,实现得都很简单,最近决定重新打牢基础,于是重新开始实现书上的数据结构和算法. 模仿C++ Primer的StrVec以及std::vector,使用模板类+allocater分配内存,遵循“三/五原则”,期间遇到了几个小问题,记录下. 1.unsigned和signed的比较: 在实现insert操作时,写了个私有方法去把数组index处开始的元素向后移动n位.分两种情况处理,一种是容量不够需要重新分配内存,另一种是容量足够,直接向后移动. 前一种…
线性表 定义 线性表(linear list)是由零个或多个相同类型的数据元素构成的有限序列. 存储结构 顺序存储 最简单的存储方法是顺序存储法,即把线性表的数据元素按照逻辑次序顺序地放在一组地址连续的存储空间中,用顺序存储方法存储的线性表称为顺序表(sequential list).因为存储的类型相同因此每个元素所占的存储空间也相同. 因为顺序表存储的每个元素占用的存储空间相同,因此只要知道第一个元素的存储地址,就可以直接计算出任意元素的存储地址,所以顺序表是一种随机存储结构. 优点:不需要为…
线性表 定义:是最常用的,也是最简单的数据结构,是长度为n个数据元素的有序的序列. 含有大量记录的线性表叫文件 记录:稍微复杂的线性表里,数据元素为若干个数据项组成,这时把一个数据元素叫记录 结构特点:在非空有限的条件下,存在唯一的一个表头结点,唯一的一个表尾结点,除去第一个元素之外,每个数据元素都只有一个前驱,除去最后一个元素之外,每一个数据元素都只有一个后继. 注意:线性表中的数据元素可以是各种各样的,但同一线性表中的元素必定具有相同特性(属于同一数据对象,类似数组).线性表的数据元素间有序…
线性表的定义:N个数据元素的有限序列 线性表从存储结构上分为:顺序存储结构(数组)和 链式存储结构(链表) 顺序存储结构:是用一段连续的内存空间存储表中的数据 L=(a1,a2,a3....an) 链式存储结构:是用一段一段连续的内存空间存储表中每一行的数据,段与段之间通过一个引用(指针)相互连接来,形成一个链式的存储结构 看到顺序存储结构的图示,我们可能会马上联想到C语言的数组.是的,数组就是一种典型的顺序存储数据结构.下面我通过一个实例,来实现对顺序存储结构中的数据增.删.改.查的操作. 首…
声明:数据结构与算法系列博文参考了<天勤高分笔记>.<王道复习指导>.C语言中文网.非商业用途,仅为学习笔记总结! 第一章<绪论> 一.基本概念及入门常识  ////(一)数据结构的基本概念和术语//// . 数据 数据是信息的载体,是描述客观事物属性的数.字符以及所有能输入到计算机中并被计算机程序识别和处理的符号的集合. . 数据元素 数据元素是数据的基本单位,通常作为一个整体进行考虑和处理.一个数据元素可由若干个数据项组成,数据项是构成数据元素的不可分割的最小单位.…
描述 请你定义一个线性表,可以对表进行"在某个位置之前插入一个元素"."删除某个位置的元素"."清除所有元素"."获取某个位置的元素"等操作.键盘输入一些命令,可以执行上述操作.本题中,线性表元素为整数,线性表的第一个元素位置为1.线性表的最大长度为1000. 输入 各个命令以及相关数据,它们对应的格式如下: 在某个位置之前插入操作:insert,接下来的一行是插入的组数n,下面是n行数据,每行数据有两个值,分别代表位置与插入…
第二章 线性表 参考文献:[数据结构(C语言版)].严蔚敏 本篇章仅为个人学习数据结构的笔记,不做任何用途. 2.1 线性结构的特点 (1). 存在唯一的一个被称为"第一个"的数据元素 (2). 存在唯一的一个被称为"最后一个"的数据元素 (3). 除第一个之外,集合中的每个数据元素均有唯一的前驱 (4). 除最后一个之外,集合中的每个数据元素均有唯一的后继 2.2 线性表的类型定义 线性表(linear_list) 是最简单最常用的一种数据结构.一个线性表是n个数…
线性表:具有相同数据类型的n(n>0)个数据元素的有限序列. 主要有顺序存储和链式存储. 顺序存储: 特点:地址连续,随机/存取,顺序存储. 建立:首地址/存储空间大小(数组),表长. 方式:静态和动态. 优点:存储密度大:随机存储:快速存取表中任一位置元素. 缺点:插入删除移动大量元素:对存储空间要求高,会产生存储空间的碎片. 1.插入 bool ListInsert(SqList &L,int i,Elemtype e){ ||i>L.length+) //判断i范围是否有效 re…
C++实现线性表的链式存储结构: 为了解决顺序存储不足:用线性表另外一种结构-链式存储.在顺序存储结构(数组描述)中,元素的地址是由数学公式决定的,而在链式储存结构中,元素的地址是随机分布的,每个元素都有一个明确的指针指向线性表的下一个元素的位置(即地址). 线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,这组存储单元可以是连续的,也可以是不连续的.在顺序结构中,每个数据元素只需要存数据元素信息就行了,而在链式结构中,除了存储数据元素信息外,还要存储它的后继元素的存储地址.…