数据结构和算法
文章平均质量分 60
RiRiRicardo
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【数据结构和算法】Day 1
数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科。 程序设计 = 数据结构 + 算法 简单来说,数据结构研究的是一种关系,就是数据元素相互之间存在的一种或多种特定关系的集合。 传统上,数据结构分为逻辑结构和物理结构 逻辑结构是指数据对象中的数据元素之间的相互关系,也是数据结构关注的重点。 物理结构是指原创 2017-08-25 20:14:20 · 229 阅读 · 0 评论 -
【数据结构和算法】Day 14
静态链表:用数组描述的链表叫做静态链表,因为数组在声明的时候就必须知道要占多大的空间,这种描述方法叫做游标实现法。 实现代码: #define MAXSIZE 1000 typedef struct { Elemtype data; //数据 int cur; //游标(Cursor) }Component, StaticLinkList[MAXSIZE];原创 2017-08-28 20:35:56 · 303 阅读 · 0 评论 -
【数据结构和算法】Day 15
静态链表的插入操作:每当要进行插入操作时,便可以从备用链表上取得第一个结点作为待插入的新节点。结合图片来说,这里我们假设要在A后面插入B: 插入完成之后: 先将整个数组的第一个元素的游标改为B即将插入位置的游标,即将下标为0的元素的游标由5改为6,这一步叫获得空闲分量。 然后将B插入到备用链表上的第一个元素,并将A的游标改为B的下标,B的游标改为C的下标,这一步才是真正的插入原创 2017-08-29 19:06:57 · 280 阅读 · 0 评论 -
【数据结构和算法】Day 13
单链表整表删除操作的实现代码 Status ClearList(LinkList *L) { LinkLisk p,q; p = (*L)->next; while(p) { q = p->next; free(p); p = q; } (*L)->next = NULL; retur原创 2017-08-28 20:32:04 · 296 阅读 · 0 评论 -
【数据结构和算法】Day 17
将单链表中终端节点的指针端由空指针改为指向头节点,就使整个单链表形成一个环,这种头尾相接的单链表称为单循环列表,简称循环列表。 循环列表的主要差异就在于循环的判断空列表的条件上,原来判断head->next是否为NULL,现在则是head->next是否等于head 终端节点用尾指针rear指示,则查找终端结点的结果是O(1),而开始结点是rear->naxt->naxt,当然原创 2017-09-05 18:50:01 · 376 阅读 · 0 评论 -
【数据结构和算法】Day 12
对于顺序存储结构的线性表的整表创建,我们可以用数组的初始化来直观理解。 而单链表和顺序存储结构就不一样了,它不像顺序存储结构数据这么集中,它的数据可以是分散在内存各个角落的,它的增长也是动态的。 创建单链表的过程是一个动态生成链表的过程,从“空表”的初始状态起,依次建立各元素结点并逐个插入链表。 头插法建立单链表:从一个空表开始,生成新节点,读取数据存放到新节点的数据原创 2017-08-27 20:38:09 · 244 阅读 · 0 评论 -
【数据结构和算法】Day 11
单链表ListInsert操作的实现代码 /*初始条件:链式线性表L已存在,1 <= i <= Listlength(L) */ /*操作结构:在L中第i个位置之前插入新的数据元素e,L的长度加1 */ Status ListInsert( LinkList *L, int i, ElemType e ) { int j; LinkList p, s;原创 2017-08-27 17:14:38 · 470 阅读 · 0 评论 -
【数据结构和算法】Day 10
头节点的数据域一般不记录信息。 注意区分头结点和头指针的区别: 1)头指针:是指链表指向第一个节点的指针,若链表有头结点,则是指向头结点的指针。 头指针具有标识作用,所以常用头指针冠以链表名字(指针变量的名字)。 无论链表是否为空,头指针均不为空。 头指针是链表的必要元素。 2)头结点:头结点是为了操作的统一和方便而设立的,放在第一个元素的结点之前,其数据域一般原创 2017-08-27 15:40:44 · 312 阅读 · 0 评论 -
【数据结构和算法】Day 8
线性表有两种物理存储结构:顺序存储结构和链式存储结构。 顺序存储结构:指的是用一段地址连续的存储单元依次存储线性表的数据元素,其结构代码如下。 #define MAXSIZE 20 typedef int Elemtype; typedef struct { ElemType data[MAXSIZE]; int length; //线性表当前长度 }SqList原创 2017-08-26 19:37:09 · 293 阅读 · 0 评论 -
【数据结构和算法】Day 7
线性表的抽象数据类型定义: ADT 线性表(List) Data 线性表的数据对象集合为{a1,a2,...,an},每个元素的类型均为DataType。其中,除第一个元素a1外,每一个元素有且只有一个直接前驱元素,除了最后一个元素an外,每一个元素有且只有一个直接后继元素。数据元素之间的关系是一对一的关系。 Operation InitList(*L):初始化操作,建立一个空的线性原创 2017-08-26 18:32:15 · 403 阅读 · 0 评论 -
【数据结构和算法】Day 6
线性表(List):由零个或多个数据元素组成的有限序列。 数学语言定义:若将线性表记为(a1,...,ai-1,ai,ai+1,...,an),则表中的ai-1领先于ai,ai领先于ai+1,称ai-1是ai的直接前驱元素,ai+1是ai的直接后继元素。 关键点: 1)线性表是一个序列,也就是说元素之间是有先后顺序的。 2)若元素存在多个,则第一个元素无前驱,而最后一个元素原创 2017-08-26 14:38:30 · 509 阅读 · 0 评论 -
【数据结构和算法】Day 5
int i, j; for( i=0; i < n; i++ ) { function(i); } void function(int count) { printf( "%d" , count); } 函数体是打印这个参数,这很好理解。function函数的时间复杂度是O(1),所以整体的时间复杂度就是循环的次数O(n)。 int i, j; for( i=0;原创 2017-08-26 13:31:36 · 297 阅读 · 0 评论 -
【数据结构和算法】Day 4
算法时间复杂度:在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间度量,记作:T(n)=O(f(n))。它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐进时间复杂度,简称为时间复杂度。其中f(n)是问题规模n的某个函数。 用大写的O()来体现算法时间复原创 2017-08-26 10:53:32 · 479 阅读 · 0 评论 -
【数据结构和算法】Day 9
实现ListDelete操作的具体代码/*初始条件:顺序线性表L已存在,1 <= i <= Listlength(L)。 */ /*操作结果:删除L的第i个数据元素,并用e返回其值,L长度-1。 */ Status ListDelete(SqList *L, int i, ElemType *e) { int k; if( L->length ==原创 2017-08-27 11:24:31 · 442 阅读 · 0 评论 -
【数据结构和算法】Day 2
算法的五个基本特征:输入、输出、有穷性、确定性、可行性。 1)输入:算法具有零个或多个输入。 2)输出:算法至少有一个或多个输出。 3)有穷性:指算法在执行有限的步骤之后,自动结束而不会出现无限循环。 4)确定性:算法的每一个步骤都具有确定的含义,不会出现二义性。 5)可行性:算法的每一步都必须是可行的,也就是说,每一步都能够通过执行有原创 2017-08-25 20:40:54 · 303 阅读 · 0 评论 -
【数据结构和算法】Day 3
算法效率的度量方法: 1)事后统计法:这种方法主要是通过设计好的测试程序和数据,利用计算机计时器对不同算法编制的程序的运行时间进行比较,从而确定算法效率的高低。 2)事前分析估算法:在计算机程序编写前,依据统计方法对算法进行估算。 影响高级语言程序运行时间的因素: 1)算法采用的策略,方案 2)编译产生的代码质量 3)问题的输入规模 4)机器执行指令的速度 由此可见原创 2017-08-25 20:43:40 · 282 阅读 · 0 评论 -
【数据结构和算法】Day 16
静态链表删除操作,如图所示,我们要删除的元素是C 删除之后的结果为下图: 我们可以看到,删除也是分为两步进行的操作: 第一步为静态链表的游标传递,将删除所要删除的元素的游标传递给上一个元素的游标(如图所示,C的游标值3传递给了B的游标,删除C后,B的游标值变为了3)。 第二部为备用链表的游标传递,将删除后的元素回收到备用链表,即将数组第一个元素的游标传递给所删除原创 2017-08-29 20:10:04 · 267 阅读 · 0 评论
分享