数据结构
帅九妹
这个作者很懒,什么都没留下…
展开
-
算法的时间复杂度
定义:在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间量度,记作:T(n) = O(f(n))。它表示随问题规模n的扩大,算法执行的时间的增长率和f(n)的增长率相同,称作算法的渐进时间复杂度,简称为时间夫扎渡。期中f(n)是问题规模n的某个函数。推导大O阶的方法:用常数1取...原创 2020-07-15 18:30:20 · 228 阅读 · 0 评论 -
栈与队列-基础
栈的定义栈是限定仅在表尾进行插入和删除操作的线性表。栈顶:允许插入和删除的一端,另一端称为栈底。空栈:不含任何数据元素。栈又称为后进后出的线性表,简称LIFO结构。进栈出栈变化形式现在有1、2、3三个整形数据元素依次进栈,出栈顺序分析第一种:1、2、3进,再3、2、1出。次序为321第二种:1进,1出,2进,2出,3进,3出,次序为123第三种:1进、2进,2出、1出,3进,3出...原创 2020-08-26 12:43:33 · 45 阅读 · 0 评论 -
线性表——循环链表与双向链表
循环链表定义:将单链表的终端结点的指针由空指针改为指向头结点,这使整个单链表形成一个环,这种头尾相接的单链表称为单循环链表,简称循环链表。改进:用指向终端结点的尾指针代替头指针。这样查找开始结点和终端结点就都很方便,时间复杂度为O(1)。同时,合并两个链表也会变得更方便。双向链表定义: 在单链表的每个结点中,再设置一个指向其前驱结点的指针域,所以共有两个指针域.typedef s...原创 2020-07-17 11:32:20 · 80 阅读 · 0 评论 -
线性表——静态链表
定义:用数组描述的链表叫做静态链表(游标实现法)代码实现:/*线性表的静态链表存储结构*/ #define MAXSIZE 1000 /*假设链表的最大长度是1000,尽量设大一些,防止溢出*/ typedef struct { ElemType data; int cur; /*游标(cursor),为0时表示无指向*...原创 2020-07-17 17:42:37 · 90 阅读 · 0 评论 -
栈与队列——栈的链式存储结构
栈的链式存储结构 == 链栈原创 2020-08-26 16:42:34 · 92 阅读 · 0 评论 -
栈与队列-顺序存储结构
栈的结构定义:typedef int SElemType; typedef struct { SElemType data[MAXSIZE]; int top; } SqStack;进栈和出栈操作:Status Push(SqStack *S, SElemType e) { if(S->top == MAXSIZE - 1) { ...原创 2020-08-26 13:35:11 · 182 阅读 · 0 评论 -
算法绪论-
什么是算法呢?算法就是解决问题的方法算法:算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作算法的特性五大基本特性:输入、输出、有穷性、确定性、可行性。输入输出:算法至少有一个或多个输出有穷性:算法在执行有限步骤后,自动结束而不会出现无限循环,并且每一个步骤在可接受的时间内完成确定性:每一步代码都具有确定的含义,不会出现二义性。可行性...原创 2020-07-14 05:58:21 · 54 阅读 · 0 评论 -
线性表--
线性表:零个或多个数据元素的有限序列。线性表的定义线性表,顾名思义,一条线连成的表。几个性质:线性表是一个序列,元素之间是有顺序的;除开头和末尾的元素之外,每个元素都有一个确定的前驱和后继元素;线性表强调是有限的;在非空线性表中每个元素都有一个确切的位置。PS:在较为复杂的线性表中,一个数据元素可以由多个数据项组成(例如,一个班的花名册可以包含学生姓名、性别、学号,每一个学生为一...原创 2020-07-16 10:08:59 · 377 阅读 · 0 评论 -
数据结构绪论
数据结构,简单理解就是关系,是相互之间存在一种或多种特定关系的数据元素的集合。数据数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录数据项:一个数据可以由多个数据项组成。(例:人这样的元素,有眼、鼻、耳、喉等数据项,也可以有身高、体重等);数据...原创 2020-07-14 11:53:05 · 39 阅读 · 0 评论 -
线性表——链式存储
链式存储数据域:存储数据元素信息的域;指针域: 存储信息的域;节点: 这两部分信息组成数据元素ai的存储映像,成为结点(Node)单链表:n个节点链结成一个链表,即为线性表的链式存储结构,因为此链表的每个节点中只含一个指针域,所以成为单链表。头指针: 链表中第一个结点的存储位置;头节点: 为了更加方便的操作,我们在链表的第一个节点前附设一个节点,成为头节点(此时头指针存储的就是该...原创 2020-07-16 05:42:35 · 649 阅读 · 0 评论 -
线性表——顺序存储
线性表的顺序存储结构定义:用一段地址连续的的存储单元依次存储线性表的数据元素。代码结构:#define MAXSIZE 20 typedef int ElemType; typedef struct{ ElemType data[MAXSIZE]; int length; }SqList;三个重要属性:存储空间的起始位置:...原创 2020-07-16 17:25:54 · 67 阅读 · 0 评论 -
算法效率的度量方法
事后统计法:你跑一遍不就知道了? 缺陷: 超多,自己想事前分析估算方法:该算法运行时间主要取决于:算法采用的策略、方法编译产生的代码质量问题的输入的规模机器执行指令的速度根据控制变量法,排除外在因素,得到: 一个程序的运行时间,依赖于算法的好坏和问题的输入规模。在分析程序运行时间时,最重要的是把程序看成是独立于程序设计语言的算法或一系列步骤 ...原创 2020-07-15 14:53:21 · 146 阅读 · 0 评论