1. 数据结构怎么做
三个月得话其实正常人应该够了。如果你是已经大三或者有一定编程水平。
为什么这么说呢,因为这个三个月很大程度取决于人,如果你说正常大一这种连语言都没太玩明白三个月可能有些吃力(不排除某些大佬),如果你是大三这种水平,认真过来得即使没接触太多数据结构但是好待写过很多代码,你离掌握可能只需要一个静心得学习和理解。
2. 数据结构怎么实现
可以这么说数据结构主要从逻辑结构和物理结构两个方面来看而逻辑结构主要是对该结构操作的设定,物理结构是描述数据具体在内存中的存储(如:顺序结构、链式结构、索引结构、希哈结构)等。
3. 数据结构怎么做功能选择
第一种最简单的方式就是按数据排列。按快捷键“Ctrl+A”全选数据内容, 按升序或降序的方式排列。会把相同的词条排列在一起。可以使用“筛选”功能,然后选择“自定义自动筛选方式”。在弹出的对话框里面填上自己想要的限定条件。就可以把相同条件的所有数据集中到一起。
对于两列循环比较,想要找到一样的内容,可以使用函数,如“=IF(COUNTIF(G:G,A2)=0,"",A2)” 这个表示在G列中循环查找是否有与A2位置的内容一致的数据,如果有,就把A2位置的全部内容提取出来,显示在此调用函数所在位置。
这样也是一种集中数据的方式。对于不同的情况,可以根据实际需求来集中数据。这个就要看具体的数据结构。
4. 数据结构能做什么
1.数据结构一般包括以下三方面内容:
① 数据元素之间的逻辑关系,也称数据的逻辑结构(Logical Structure);
数据的逻辑结构是从逻辑关系上描述数据,与数据的存储无关,是独立于计算机的。数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。
② 数据元素及其关系在计算机存储器内的表示,称为数据的存储结构(Storage Structure);
数据的存储结构是逻辑结构用计算机语言的实现(亦称为映象),它依赖于计算机语言。对机器语言而言,存储结构是具体的。一般,只在高级语言的层次上讨论存储结构。
③ 数据的运算,即对数据施加的操作。
数据的运算定义在数据的逻辑结构上,每种逻辑结构都有一个运算的集合。最常用的检索、插入、删除、更新、排序等运算实际上只是在抽象的数据上所施加的一系列抽象的操作。
所谓抽象的操作,是指我们只知道这些操作是"做什么",而无须考虑"如何做"。只有确定了存储结构之后,才考虑如何具体实现这些运算。
存储方式应该和存储结构一样的吧?··
5. 数据结构怎么做分析
这东西没什么太多的窍门,就是多练。如果你的教材是严蔚敏的《数据结构(C语言版)》,我劝你换一本书看看,因为那本书真的是晦涩难懂。推荐《数据结构与算法分析: C语言描述》:
2然后好好看懂书上的各个源码,如果可以,可以做部分习题。(不要说自己没有时间,我们都是过来人,其实可以想各种办法给自己整出时间)。
6. 怎么写数据结构
算法描述(Algorithm Description )是指对设计出的算法,用一种方式进行详细的描述,以便与人交流。算法可采用多种描述语言来描述,各种描述语言在对问题的描述能力方面存在一定的差异,可以使用自然语言、伪代码,也可使用程序流程图,但描述的结果必须满足算法的五个特征。
算法可采用多种描述语言来描述,例如,自然语言、计算机语言或某些伪语言。各种描述语言在对问题的描述能力方面存在一定的差异。例如,自然语言较为灵活,但不够严谨。而计算机语言虽然严谨,但由于语法方面的限制,使得灵活性不足。
因此,许多教材中采用的是以一种计算机语言为基础,适当添加某些功能或放宽某些限制而得到的一种类语言。这些类语言既具有计算机语言的严谨性,又具有灵活性,同时也容易上机实现,因而被广泛接受。目前,许多“数据结构”教材采用类PASCAL语言、类C++或类C语言作为算法描述语言。
7. 数据结构怎么做题
这个问题就是『约瑟夫环』问题嘛。
1 问题描述
约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知 n 个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为 k 的人开始报数,数到 m 的那个人出圈;他的下一个人又从 1 开始报数,数到 m 的那个人又出圈;依此规律重复下去,直到剩余最后一个胜利者。
例如:有10个人围成一圈进行此游戏,每个人编号为 1-10,。若规定数到 3 的人出圈。则游戏过程如下。
(1)开始报数,第一个数到 3 的人为 3 号,3 号出圈。 1, 2, 【3】, 4, 5, 6, 7, 8, 9, 10。 (2)从4号重新从1开始计数,则接下来数到3的人为6号,6号出圈。 1, 2, 【3】, 4, 5, 【6】, 7, 8, 9, 10。 (3)从7号重新从1开始计数,则接下来数到3的人为9号,9号出圈。 1, 2, 【3】, 4, 5, 【6】, 7, 8, 【9】, 10。 (4)从10号重新从1开始计数,由于10个人称环形结构,则接下来数到3的人为2号,2号出圈。 1, 【2】, 【3】, 4, 5, 【6】, 7, 8, 【9】, 10。 (5)从4号重新从1开始计数,则接下来数到3的人为7号,7号出圈。 1, 【2】, 【3】, 4, 5, 【6】, 【7】, 8, 【9】, 10。 (6)从8号重新从1开始计数,则接下来数到3的人为1号,1号出圈。 【1】, 【2】, 【3】, 4, 5, 【6】, 【7】, 8, 【9】, 10。 (7)从4号重新从1开始计数,则接下来数到3的人为8号,8号出圈。 【1】, 【2】, 【3】, 4, 5, 【6】, 【7】, 【8】, 【9】, 10。 (8)从10号重新从1开始计数,则接下来数到3的人为5号,5号出圈。 【1】, 【2】, 【3】, 4, 【5】, 【6】, 【7】, 【8】, 【9】, 10。 (9)从10号重新从1开始计数,则接下来数到3的人为10号,10号出圈。 【1】, 【2】, 【3】, 4, 【5】, 【6】, 【7】, 【8】, 【9】, 【10】。 (10)最终剩余 4 号,4 号为胜利者。
2 数组求解
2.1 解题思想
用数组求解的基本思想就是用一个一维数组去标识这 n 个人的状态,默认全为 1 ,也就是都在圈子内,当数到 m的人出圈之后,标识置为 0(就是出圈了),同时报数器清 0,下一个人要从 1 开始。在每次报数之前要判断他是否在圈子内(也就是他的标识是否为 1 ),如果在圈子里面才会继续报数。定义一个变量记录出圈的人数, 出圈的人数等于 n-1 时,则游戏结束。
2.2 代码实现
3 循环链表求解3.1 解题思想
约瑟夫环问题可以转化为循环链表的数据结构来求解。可以将每个人看做链表的单个节点,每个节点之间通过链表的 next 指针连接起来,并且将链表末尾节点指向头节点就形成的环,由链表构成的环形结构在数据结构中称为循环链表。
3.2 代码实现
4 递推公式求解4.1 解题思想
约瑟夫环中,每当有一个人出圈,出圈的人的下一个人成为新的环的头,相当于把数组向前移动 m 位。若已知 n-1 个人时,胜利者的下标位置位 f(n−1,m) ,则 n 个人的时候,就是往后移动 m 位,(因为有可能数组越界,超过的部分会被接到头上,所以还要模 n ),根据此推导过程得到的计算公式为: f(n,m) = (f(n−1,m) + m) % n。 其中,f(n,m) 表示 n 个人进行报数时,每报到 m 时杀掉那个人,最终的编号,f(n−1,m) 表示,n-1 个人报数,每报到 m 时杀掉那个人,最终胜利者的编号。有了递推公式后即可使用递归的方式实现。
4.2 递归代码实现
4.3 迭代代码实现
实际应用
比如你们公司需要团建,你可以设计这个游戏,根据游戏人数的多少,将你和你心仪的妹子安排在合适的座位上,一同进最后的决赛圈~
- 相关评论
- 我要评论
-