- 博客(6)
- 收藏
- 关注
原创 数据结构--线性表(2)--链式存储(2)--双链表,循环链表,静态链表
在单链表的基础上加一个指向前驱的指针3).双链表定义线性表的基本操作双链表的建立头插法尾插法双链表在按值查找和按位查找和单链表一致。由于双链表加入了一个指向前驱节点的指针,插入和删除操作和单链表操作大有不同。下面会具体说明双链表插入和删除操作。删除第 i 个节点思想:以下三种方式实现下面代码更简洁删除给点给值所在节点的思想:下面就只写一种方式,和按位序删除操作一致。插入操作在指定节点前插入新节点:在指定节点后插入新节点:第i个位置插入3.循环链表1).循环单链表循环单链
2022-08-03 22:30:54
127
原创 数据结构--线性表(2)--链式存储(1)--单链表篇
线性表的链式存储又称单链表。为了建立数据元素之间的线性关系,对每个链表节点,除存放自身数据外,还存放一个指向后继的指针。也称线性链表。一个链表由n个节点组成。单链表节点的结构特点:data 为数据域部分,用于存储数据。 next 为指针域部分,用于指向后继。指针为数据元素之间的逻辑关系的映像,则逻辑上相邻的两个元素其存储的物理位置不要求紧邻,因此这种存储结构为非顺序映像或链式映像。利用单链表可以解决顺序表需要大量连续存储单元的缺点,由于单链表的元素离散地分布在存储空间中,所以单链表是非随机存取的存储结构,
2022-06-19 18:27:24
403
原创 数据结构--时间复杂度计算和空间复杂度计算篇
定义:所有语句频度之和,记为T(n)。一个语句频度是指该语句在算法中被重复执行的次数。T(n)是算法中问题规模的函数,时间复杂度主要分析T(n)数量级。同通常采用算法中基本运算频度f(n)来分析算法时间复杂度。取f(n)中随n增长最快的项。算法时间复杂度记为T(n)=O(f(n))。理解T(n)=O(f(n)):O(f(n))表示取f(n)的同阶无穷小。f(n)的同阶无穷小就是取函数每项对比之后阶数最高的。为什么要这么取呢?时间复杂度是大概描述算法效率,不需要多精确,所以,计算的时候直接取函数中阶
2022-06-04 11:29:08
2664
2
原创 数据结构--线性表(1)--顺序存储篇
线性表是最常见且简单的的一种线性结构。由n个(n为线性表的长度,当n=0时,线性表为空表)数据特性相同的元素构成的有限序列称为线性表。对于非空线性表或者线性结构,其特点有:**1).表中数据元素个数有限,数据类型同类,有先后次序。2).表中都是数据元素,每个元素都是单个元素。3). 除第一个数据元素外,其余元素都有前驱4). 除最后一个数据元素外,其余元素都有后继(前驱和后继:比如排队,在你前面的就可以称为前驱,在你后面的,称为后继)**InitList(&L):初始化线性表,构造一个空线性表
2022-05-29 11:32:56
1198
原创 数据结构与算法概述
数据是信息的载体,是描述客观事物的数,字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。一个数据元素可以由若干个数据项组成。例如:学生记录就是一个数据元素,学生记录包含了学生姓名,学号,性别等数据项组成。是性质相同的数据元素集合,是数据的一个子集。例如:整数集数据对象集合H={-1,0,1,2,3…}数据类型是一个值的集合和定义在这个值集上的一组操作的总称。1.原子类型其值是不可再分的数据。例如:整数型
2022-05-21 15:33:59
189
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人