数据结构
文章平均质量分 83
手写的从前66
这个作者很懒,什么都没留下…
展开
-
时间复杂度
<!-- 文章内容 --> <div data-note-content="" class="show-content"> <div class="show-content-free"> <p>我们假设计算机运行一行基础代码需要执行一次运算。</p>int aFu转载 2018-12-01 08:19:37 · 103 阅读 · 0 评论 -
递归算法与迭代算法的区别
举个例子:我想求1+2+3+4+..+100的值。迭代的做法:从1到100,顺着往下累加。1+2=3,3+3=6,6+4=10,10+5=15…… 程序表示, int i=1,sum=0; while(i<=100){ sum = sum +i; }递归的做法:我要求1到...转载 2019-02-15 20:29:33 · 2933 阅读 · 1 评论 -
递归算法
原作者:书呆子Rico 《递归的内涵与经典应用》 http://my.csdn.net/justloveyou_摘要: 大师 L. Peter Deutsch 说过:To Iterate is Human, to Recurse, Divine.中文译为:人理解迭代,神理解递归。毋庸置疑...转载 2019-02-15 20:26:37 · 168 阅读 · 0 评论 -
快慢指针的应用
https://blog.csdn.net/qq_21815981/article/details/79833976 快慢指针&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;快慢指针中的快慢指的是移动的步长,即每次向前移动速度的快慢。例如可以让快指针每次沿链表向前移动2,慢指针每次向前移动1次。快慢指针的应用...转载 2019-02-04 12:18:48 · 128 阅读 · 0 评论 -
静态链表(1)的实现
原 静态链表的实现 2018年03月07日 11:38:29 张先生的blog 阅读数:1538 静态链表用...转载 2019-02-03 21:34:54 · 263 阅读 · 0 评论 -
静态链表(2)一个实验
文字部分转载自:https://www.cnblogs.com/zhaoxy/p/7754906.html静态链表&amp;amp;amp;amp;nbsp; &amp;amp;amp;amp;nbsp; 对于没有指针的编程语言,可以用数组替代指针,来描述链表。让数组的每个元素由data和cur两部分组成,其中cur相当于链表的next指针,这种用数组描述的链表叫做静态链...转载 2019-02-03 21:16:18 · 299 阅读 · 0 评论 -
单链表(2)头插法,尾插法和整表删除
创建单链表的过程是一个动态生成链表的过程,从“空表”的初始状态起,依次建立各元素结点并逐个插入链表。所以单链表整表创建的算法思路如下:-声明一结点p和计数器变量i;-初始化一空链表L;-让L的头结点的指针指向NULL,即建立一个带头结点的单链表;-循环实现后继结点的赋值和插入。头插法的核心思想是:s-&amp;gt;next=L-&amp;gt;next;L-&amp;gt;next=s;如图:头结点...原创 2019-02-03 18:43:44 · 452 阅读 · 0 评论 -
循环链表
注:这里并不是说循环链表一定要有头结点。其实循环链表的单链表的主要差异就在于循环的判断空链表的条件上,原来判断head-&amp;gt;next是否为null,现在则是head-&amp;gt;next是否等于head。#define _CRT_SECURE_NO_WARNINGS#include &amp;lt;stdio.h&amp;gt;#define ERROR 0#define OK 1typedef原创 2019-02-14 21:32:19 · 188 阅读 · 0 评论 -
头结点和头指针的理解
线性表使用顺序(数组)存储时有个弊端,那就是在插入和删除时需要大量的移动数据,这显示是非常消耗时间的,所以可以采用链式存储,即有一个指针域(单链表),来记录下个结点的存储位置(地址),这样在插入和删除结点时只需要修改指针域即可,从而大量减少移动数据所消耗的时间。来看链表的定义:s...转载 2019-02-14 21:28:55 · 5757 阅读 · 0 评论 -
单链表(1)
• 头指针– 头指针是指链表指向第一个结点的指针,若链表有头结点,则是指向头结点的指针。– 头指针具有标识作用,所以常用头指针冠以链表的名字(指针变量的名字)。– 无论链表是否为空,头指针均不为空。– 头指针是链表的必要元素。• 头结点– 头结点是为了操作的统一和方便而设立的,放在第一个元素的结点之前,其数据域一般无意义(但也可以用来存放链表的长度)。– 有了头结点,对在第一元素结点...原创 2019-02-03 11:56:43 · 825 阅读 · 0 评论 -
顺序表
• 总结下,顺序存储结构封装需要三个属性:– 存储空间的起始位置,数组data,它的存储位置就是线性表存储空间的存储位置。– 线性表的最大存储容量:数组的长度MaxSize。– 线性表的当前长度:length。• 注意1、数组的长度与线性表的当前长度需要区分一下:数组的长度是存放线性表的存储空间的总长度,一般初始化后不变。而线性表的当前长度是线性表中元素的个数,是会变化的。2、顺序表必须...原创 2019-02-02 21:50:39 · 273 阅读 · 0 评论 -
线性表基础
原子类型:不可以再分解的基本类型,例如整型、浮点型、字符型等。结构类型:由若干个类型组合而成,是可以再分解的,例如整型数组是由若干整型数据组成的。抽象数据类型的定义仅取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关, 而且,抽象数据类型不仅仅指那些已经定义并实现的数据类型,还可以是计算机编程者在设计软件程序时自己定义的数据类型。|||||||||||||||||||||||||...原创 2019-02-02 18:15:47 · 186 阅读 · 0 评论 -
时间复杂度运算
我们研究算法的复杂度,侧重的是研究算法随着输入规模扩大增长量的一个抽象,而不是精确地定位需要执行多少次。我们在分析一个算法的运行时间时,重要的是把基本操作的数量和输入模式关联起来。关键需要知道执行次数==时间。一般情况 下,随着输入规模n的增大,T(n)增长最慢的算法为最优算法。那么如何分析一个算法的时间复杂度呢?即如何推导大O阶呢?我们给大家整理了以下攻略:用常数1取代运行时间中的所...原创 2019-02-02 13:49:52 · 289 阅读 · 0 评论 -
数据结构基础篇绪论
• 一、逻辑结构:是指数据对象中数据元素之间的相互关系,也是我们今后最需要关注和讨论的问题。1、集合结构:同属于一个集合,没有其他的关系。2、线性结构:存在一对一的关系3、树形结构:存在一对多的关系4、图形结构:数据元素多对多的关系• 物理结构:是指数据的逻辑结构在计算机中的存储形式。• 顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。例如...原创 2019-02-02 12:33:20 · 113 阅读 · 0 评论 -
时间复杂度和空间复杂度
先简要介绍一下:算法复杂度分为时间复杂度和空间复杂度。其作用:时间复杂度是指执行这个算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。时间和空间(即寄存器)都是计算机资源的重要体现,而算法的复杂性就是体现在运行该算法时的计算机所需的资源多少。时间复杂度:1:算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量...转载 2019-02-02 12:31:55 · 118 阅读 · 0 评论 -
时间复杂度和空间复杂度
先简要介绍一下:算法复杂度分为时间复杂度和空间复杂度。其作用:时间复杂度是指执行这个算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。时间和空间(即寄存器)都是计算机资源的重要体现,而算法的复杂性就是体现在运行该算法时的计算机所需的资源多少。时间复杂度:1:算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量...转载 2019-02-02 11:28:42 · 141 阅读 · 0 评论 -
数据,数据元素 数据项,数据对象的详细理解
原 简单的介绍数据结构的里的(数据 数据元素 数据项 数据对象) 2017年10月30日 14:32:56 莫欺少年知识少 阅读数:2174更多 &lt;div class="tags-box space"&gt; &lt;..转载 2019-02-01 20:00:02 · 9914 阅读 · 1 评论 -
约瑟夫算法
&lt;span hidden="" itemprop="author" itemscope="" itemtype="http://schema.org/Person"&gt; &lt;meta itemprop="name" content=转载 2019-02-15 20:53:15 · 1602 阅读 · 0 评论