当前位置:首页 » 数据结构 - 第11页

08月18日

什么是算法? 算法的5个基本特性是什么? 算法设计的要求?

发布 : xiaohuanglv | 分类 : 数据结构精品文章 | 评论 : 0 | 浏览 : 1799次

算法的定义通常,定义算法为"为解决某一特定任务而规定的一个指令序列"。算法的5个基本特性①有输入。一个算法必须有0个或多个输入。它们是算法开始运算前给予算法的量。这些输入取自于特定的对象的集合。它们可以使用输入语句由外部提供,也可以使用赋值语句在算法内给定。②有输出。一个算法应有一个或多个输出,输出的量是算法计算的结果。③确定性。算法的每一步都应确切地、无歧义地定义。对于每一种情况,需要执行的动作都应严格地、清晰地规定。例1:void fa( ){ int x=5,y=10; z=x+++y;//解释为:x+(++y)?(x++)+y?printf("%d,%d,%d",x,y,z);}void 

08月18日

数据结构之线性表-基本概念和术语汇总

发布 : xiaohuanglv | 分类 : 数据结构精品文章 | 评论 : 0 | 浏览 : 1338次
数据结构之线性表-基本概念和术语汇总

1、线性关系如果把这两个变量分别作为点的横坐标与纵坐标,其图象是平面上的一条直线,则这两个变量之间的关系就是线性关系。从逻辑来讲,线性表的数据元素之间存在‘一对一’的逻辑关系,即为数据关系。2、线性表的长度n为线性表中包含的数据元素的个数,即为线性表的长度。长度为0的表称为空表,空表不包含任何数据元素。3、数据的逻辑结构从逻辑关系上描述数据,与数据的存储无关,是独立于计算机的。4、数据的存储结构是逻辑结构用计算机语言的实现(亦称为映象),它依赖于计算机语言。对机器语言而言,存储结构是具体的。一般,只在高级语言的层次上讨论存储结构。5、顺序存储方法把逻辑上相邻的结点存储在物理位置上相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。由此得到的存储表示称为顺序存储结构(Sequenti

08月18日

数据结构经典面试题:在字符串中找到出现频率大于50%的那个字符

发布 : xiaohuanglv | 分类 : 数据结构精品文章 | 评论 : 0 | 浏览 : 1522次
数据结构经典面试题:在字符串中找到出现频率大于50%的那个字符

问题描述:在某个字符串中(字符串可能很长,比如有几千万个字符),请找出某个出现频率大于50%的那个字符。例如:在字符串"aabcdaa"中,字符串长为7,字符'a'出现了4次,其出现频率大于50%,因此'a'就是最终要输出的字符。问题分析:思路1:解决这个问题最简单的方法就是遍历一遍字符串,针对每个字符都统计出其出现的次数,最后再遍历一遍这些次数,看哪个字符的次数超过了总次数的50%。该方法的优点是思路简单明了,缺点是额外的存储空间耗费大,算法时间复杂度高。思路2:首先对这个字符串中的字符按照某种次序排序(比如字符的字典序),得到一个有序的字符串,显而易见,该字符串中间的那个字符一定就是我们要找的那个出现频率超过50%的字符。该方法的优点是

08月18日

数据结构经典面试题:多种方法实现字符串循环移位

发布 : xiaohuanglv | 分类 : 数据结构精品文章 | 评论 : 0 | 浏览 : 1700次
数据结构经典面试题:多种方法实现字符串循环移位

问题描述:  要求在时间复杂度和空间复杂度分别为O(n)和O(1)的条件下把一个长度为N的字符串循环左移M位,例如将长度为9的字符串"123456789"循环左移4位后得到字符串"567891234"。程序的输入为N(字符串长度)和M(循环左移的位数),输出为循环移位后的字符串。解题思路:  乍一看此题,一般人都会这样想:先把字符串的前M个字符复制到临时数组变量中,然后将余下N-M个字符都分别向左移动M位,再把临时数组变量中的M个字符粘到N-M个字符的末尾。是否很简单呢?但是,这种做法的空间复杂度是O(n),不符合要求。    这样一来,二般人出现了,他们会这样想:

08月18日

数据结构之绪论-基本概念和术语汇总

发布 : xiaohuanglv | 分类 : 数据结构精品文章 | 评论 : 0 | 浏览 : 1283次
数据结构之绪论-基本概念和术语汇总

1、顺序存储方法把逻辑上相邻的结点存储在物理位置上相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。由此得到的存储表示称为顺序存储结构(SequentialStorageStructure)。2、链接存储方法不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系由附加的指针字段表示。由此得到的存储表示称为链式存储结构(LinkedStorageStructure)。3、索引存储方法通常在储存结点信息的同时,还建立附加的索引表。索引表由若干索引项组成。若每个结点在索引表中都有一个索引项,则该索引表称之为稠密索引(DenseIndex)。4、原子类型其值不可分解。通常是由语言直接提供。5、结构类型其值可分解为若干个成分(或称为分量)。6、抽象数据类型(Abstract

08月18日

数据结构学习心得

发布 : xiaohuanglv | 分类 : 数据结构精品文章 | 评论 : 0 | 浏览 : 3768次
数据结构学习心得

   山不在高,有仙则灵;水不在深,有龙则灵;要学好数据结构,有数据结构学习网才行!首先,恭喜您发现了这个网站:一个神奇的学习数据结构的网站!其次,感谢您打开这个网页阅读这篇文章,实在太感谢啦!再次,正在激动中......哽咽了。还是让我先来介绍一下我自己吧:我就是江湖上人见人爱、花见花开、车见车载,人称上天入地、无所不能、英俊潇洒、风流倜傥、玉树临风、学富五车、高大威猛、拥有千万粉丝、迷倒万千少女,号称一朵梨花压海棠的玉面小黄驴,帅到掉渣!一个见过我的女孩儿曾对我说:“如果世界只剩下十分钟的话,我会和你一同回忆你帅时的样子;如果世界只剩下三分钟的话,你要再摆一下你最最最帅的造型给我看;如果世界只剩下一分钟的话,我会对你对你说60次—小黄驴,你真帅!”还有一个

08月18日

数据结构之栈和队列-基本概念和术语汇总

发布 : xiaohuanglv | 分类 : 数据结构精品文章 | 评论 : 0 | 浏览 : 1498次
数据结构之栈和队列-基本概念和术语汇总

1、队尾允许插入的一端称为队尾,队尾元素的位置由rear指出;2、队头允许删除的一端称为队头,队头元素的位置由front指出。3、循环队列把队列设想成头尾相连的循环表,使得数组前部由于删除操作而导致的无用空间尽可能得到重复利用。这样的队列称之为循环队列。4、队列的链式存储结构队列的链式存储结构是用一个线性链表表示一个队列,指针front 与rear 分别指向队头元素与队尾元素所在的链结点。5、后缀表达式运算符紧跟在两个操作数之后的表达式叫后缀表达式。6、假溢出系统作为队列用的存储区还没有满,但队列却发生了溢出,我们把这种现象称为"假溢出"。7、堆栈堆栈是一种只允许在表的一端进行操作和删除操作的线性表。特点:1)先进后出(FILO)的线性表。2)或后进先出(&n

08月18日

有哪些算法设计与方法?

发布 : xiaohuanglv | 分类 : 数据结构精品文章 | 评论 : 0 | 浏览 : 1321次

要制定一个算法,一般要经过设计、确认、分析、编码、检查、调试、计时等阶段,因此学习计算机算法必须涉及这些方面的内容。在这些内容中有许多都是现今重要而活跃的研究领域。为便于区别,把算法学习的内容分成五个不同的方面:(一)何设计算法设计算法的工作是不可能完全自动化的。本书是要使读者学会已被实践证明是有用的一些基本设计策略。这些策略不仅在计算机科学,而且在运筹学、电气工程等多个领域都是非常有用的,利用它们已经设计出了很多精致有效的好算法。读者们一旦掌握了这些策略,也一定会设计出更多新的、有用的算法。(二)如何表示算法语言是交流思想的工具,设计的算法也要用语言恰当地表示出来。本书基本采用结构程序设计的方式,选择了一种名为SPARKS的程序设计语言来简单明了地表示算法。至于结构程序设计的内容本书并不打

08月18日

怎样学好数据结构

发布 : xiaohuanglv | 分类 : 数据结构精品文章 | 评论 : 0 | 浏览 : 1582次
怎样学好数据结构

       1、数据结构学习思路(1)数据结构是计算机专业最重要最基础的一门课,对于有过编程经验的人,结合自己的编程体会去领悟它的思想;对于初学者,选择一种自己最熟悉的语言去分析它。而且,随着编程经历的丰富对它的体会越深入,最初接触是对一些思想可能只是生硬的记忆,随着学习的深入逐渐领悟了很多。(2)如果你没有学过C语言,或者C语言学的不好的时候把数据结构当成一本数学书来学,它所讲述的都是一些简单的图论。在你的大脑中的主线不能丢失:线性结构,树结构和图结构。当你不再考虑复杂的程序设计时,仅仅研究个个离散点之间的关系,似乎数据结构也就不会那么难了。(3)学习好了抽象的离散点关系后,再巩固一下你的C语言水平,书中描述的都是类

网站分类

标签列表

最近发表

全站首页 | 数据结构 | 区块链| 大数据 | 机器学习 | 物联网和云计算 | 面试笔试

本站资源大部分来自互联网,版权归原作者所有!