![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 86
bit..
在校学生,偶尔写写博客,提高自我,希望对你我有所帮助
展开
-
数据结构与算法——栈的表示和实现
ADT stack{数据对象:D={ai|ai属于ElemSet,i=1,2,...,n,n>=0}数据关系:R1={|ai-1,ai属于D,i=2,...,n}an端为栈顶,a1端为栈底基本操作:初始化,进栈,出栈,取栈顶元素等。原创 2022-10-30 13:40:47 · 854 阅读 · 16 评论 -
数据结构与算法——栈和队列定义和特点
栈(stack)是一个特殊的线性表是限定仅在一端(通常是尾部)运行插入和删除操作的线性表又称为先进先出的线性表简称 LIFO 结构 9(Last In First out)原创 2022-10-27 20:15:37 · 3718 阅读 · 2 评论 -
数据结构与算法——链表(双向链表,顺序表与链表的比较)
在双向链表中有此操作(如:ListLength,GetElem等)因此涉及一个方向的指针。故它们的算法与线性表相同,但在插入,删除时则需要同时修改两个方向上的指针,两者的操作的时间复杂度均为T(n)=O(n)双向链表:在单链表的每个结点里在增加一个指向其直接前驱的指针域prior 这样链表就形成了有两个方向不同的链。p的后继结点的前驱结点为自身。即:p的前驱结点的后继结点为它自身。原创 2022-10-25 15:35:27 · 1022 阅读 · 1 评论 -
数据结构与算法——链表(头插法,尾插法,循环链表)
注意:由于循环链表没有NULL指针,故涉及遍历操作时,其终止条件就不再像非循环链表那样判断p或p-->next是否为空,而是判断它们是否等于头指针)循环链表:是一种头尾相接的链表(即:表中最后一个结点的指针域指向头结点,整个链表形成一个环状)初始时,r同L均指向头节点,每读入一个数据元素则申请一个新结点,将新结点插入到尾部结点后,r指向新结点。从一个空表L开始,将新结点逐个插入到链表的尾部,尾指针r指向链表的为节点。循环链表的写发与单链表类似 只需改变循环条件。例如:带尾指针循环链表的合并。原创 2022-10-23 21:19:40 · 2344 阅读 · 5 评论 -
数据结构与算法——单链表的基本操作的实现
(从链表的头指针出发,顺着链域next逐个结点往下搜索,直至搜索到第i个为止,因此,链表不是随机存取结)链表任然存在,但链表中无元素,成为空链表(头指针和头节点任然存在)空表:链表中无元素,称为空链表(头指针和头节点任然存在)按值查找:根据指定数据获取该数据所在的位置序号(是第几个数据元素)按值查找:根据指定数据获取该数据元素所在的位置(该数据的地址)算法思路:从首元结点开始,依次计算所有节点。算法思路:从头指针开始,依次释放所有结点。思路:判断头节点指针域是否为空。算法步骤:(找到i-1结点)原创 2022-10-21 18:49:28 · 2145 阅读 · 15 评论 -
数据结构与算法——线性表的链式表示与实现
首元节点的地址保存在头节点的指针域中,所以在链表的第一个位置上的操作和其他位置一至,无需进行特殊处理。//声明结点的类型和指向结点的指针类型。n个结点由指针链组成的一个链表,它是线性表的链式存储映像,称为线性表的链式存储结构。无论链表是否为空,头指针都指向头节点的非空指针,因此空表和非空表的处理一饿就统一了。单链表由表头唯一确定,因此单链表可以用头指针的名字来命名,若头指针名时L,则把链表称为表L。结点在存储器中的位置时任意的,即逻辑上相邻的数据元素在物理上不一定相邻。结点有两个指针域的链表,称为双链表。原创 2022-10-19 21:58:44 · 613 阅读 · 2 评论 -
数据结构与算法——线性表的顺序存储结构
为了确定记录在表中的位置,需要与给定元值进行比较的关键字的个数的期望值叫做查找算法的平均查找长度。2.平均查找长度ASL(Average Search Length)顺序表必须用连续空间,只能插入到最后一个元素后面。插入元素在最前面:从第一个元素开始向后移动。插入位置在中间: 从最后一个元素向后移动。ci 找到第i个记录需要比较的次数。时间复杂度: T(n)=O(n)时间复杂度T(n)=O(n)空间复杂度:S(n)=O(1)pi 第一个记录被查找的概率。原创 2022-10-17 20:45:30 · 1079 阅读 · 5 评论 -
数据结构与算法——类C语言有关操作和补充
sqList;数组的静态分配}sqList;//顺序表类型数组的动态分配}sqList;//顺序表类型sqList;malloc(m):开辟m字节的长度地址空间,并返回这段空间的首地址。原创 2022-10-16 17:59:05 · 706 阅读 · 5 评论 -
数据结构与算法——线性表
线性表是具有相同特新的数据元素的一个有限序列。列如:同一线性表中的元素必定具有相同特性,数据元素间的关系是线性关系。线性表的例子;1.分析26个英文字母组成的英文表。2.分析学生情况登记表3.某单位历年拥有计算机的数量。原创 2022-10-15 15:23:09 · 1253 阅读 · 19 评论 -
数据结构与算法——算法和算法分析
算法分析就是分析算法占用计算机资源的多少。计算机资源主要是cpu时间和内存空间,分析算法占用cpu时间的多少称为时间性能分析,分析算法占用内存空间的多少称为空间性能分析。算法分析的目的是分析算法的时间空间性能以便改进算法。原创 2022-10-11 09:28:13 · 938 阅读 · 4 评论 -
数据结构与算法——算法与算法分析
可以理解为:我们通过计算得出一个算法的运行时间 T(n), 与T(n)同数量级的即幂次最高的O(F(n))即为这个算法的时间复杂度。例如:某算法的运行时间T(n) = n+10与n是同阶的(同数量级的),所以称T(n)=O(n)为该算法的时间复杂度。若有某个辅助函数f(n),使n --> 无穷大,limT(n)/f(n)是不是那个与0的常数,则称f(n)是T(n)的同级函数,记作T(n)=O(f(n))为算法的时间复杂度。n的某个函数f(n),算法时间度量 记作:T(n)=Of(n)原创 2022-10-05 21:57:56 · 532 阅读 · 1 评论 -
数据结构与算法——算法和算法分析
每条语句执行一次所执行的时间,一般随机器而异的,取决于机器指令的性能,速度以及编译器的代码质量,是有机器本身软件决定的,与算法无关。算法的定义:对待特定问题求解方法和步骤的一种描述,他是指令的有限序列(其中每条指令表示有一个或多个操作)1.算法:解决问题的一种方法或一个过程,考虑如何将输入转化成输出,一个问题可以有多种算法。3.对于精心选择的,典型苛刻且带有刁难性的几组数据能够得到满足要求的结果。输入非法数据算法恰当的做出反应或进行相应处理,而不是产生莫名其妙的结果。2.度量算发消耗时间。原创 2022-10-05 10:17:58 · 731 阅读 · 1 评论 -
数据结构与算法——基本概念和术语
目录一.基本概念数据(Data):数据元素和数据项数据对象:数据元素和数据对象的关系二.数据结构数据结构包括的内容:数据结构的两个层次逻辑结构与存储结构的关系逻辑结构的种类存储结构的种类三.数据内型和抽象数据类型数据类型抽象数据类型的定义数据类型的定义格式基本操作定义格式说明:抽象数据类型(ADT)定义举例:一.基本概念 1.是能输入计算机且能够被计算机处理的各种符号的集合。 2.信息的载体。 3.能够被计算机识别和加工 包括:数值型的数据:整形,实形。 非数原创 2022-10-01 00:17:32 · 1386 阅读 · 2 评论