“ 如果你想通过数据结构导论这门课,至少得看两遍书吧?”
第一遍就是粗略的看一下,这样你心里也就有了底,也就大概的了解了数据结构导论这门课所讲的内容,并且那里是考点在头脑里也就都有了大致的把握,这样,你就可以带着相应的重点,去重点
把握你觉得重要的东西了!不过其实你到现在如果连一遍也没看过呢,也没关系,我下面的总结就是希望能对这些还没看过书的人,有所帮助!
下面就列出一些我觉得是重点的东西:1 ,线性表,这一章整个都比较重要,因为这一章中关于线性表的顺序实现和链接实现及在上
面的基本运算,在最后考试中很有可能以多种形式的考法出现(如:选择,填空,应用及程序设计等)。并且由于这一章是整本书的基础,所以考试时占的比重会比较大,最后的程序设计题很可能就从这一章
里出一道甚至两道都从这章里出(一道程序设计题6 分)。 年试卷的基础上得出的结论,应当比较有参考价值。
在这一章中有一个知识点应引起大家的注意,就是
实用。
所以对于它的掌握应当达到“ 综合应用” 的等级!(一点建议:如果你在第一次看的时候遇到了
可能迎刃而解了!^ )在这一章里还有一个数据结构就是串!关于串的具体的程序编制我想就不必太
花心思了。(考试时也就这么考了:-P )
如:DELETE(“ACABA” ,3 ,3)=?结果为:“AC”
又如:SUBSTR(“ABBCA” ,2 ,2)=?结果为:“BB”
2 ,栈,队列和数组:这一章里你要掌握的东西就比较简单了(如果你掌握了上一章的内容对于这一章来讲,基本上就没有难题了)这一章里你要牢记两个概念:关于栈和队列的修改原则:(1 ),
栈,后进先出,所有操作都是在栈顶进行的。除运算只能在对头进行!且注意对头指针指示对头元素在数组中实际位置的前一个位置;实现递归调用
属于栈的应用!再附上关于栈和队列的几道例题如下:
1 ,运算(* 作)是数据结构的一个重要方面,试举一例,说明两个数据结构的。存储方式完全相同,只是对于运算(* 作)的定义不同,因而两个结构具有显著不同的特性,是两个不
同的结构。答案:栈和队列的元素依次存放在一个数组中,他们的逻辑结构和存储方式完全一样,只是栈
的插入和删除* 作只能在一端进行,而队列的插入在对尾进行,出对(删除)* 作在对首进行,因而是两种不同的数据结构,并各自具有显著的特征。
(1 )C ,B ,A ,D ,E ;(2 )A ,C ,B ,E ,D ;其中I 为进栈* 作,O 为出栈操作
答案:1 ,IIIOOOIOIO2 ,IOIIOOIIOO
3 ,树:这一章里对于不善于编制程序的你可以说是一个解脱,因为这一章和图那章都只涉及到了很少的程序编制,不过千万别忽视这两章,因为这两章有很多的考点……
(1 ),关于树的一些概念:结点的度,树的度,节点的层树,树的深度等(千万别忽视这些概念,他们可是拿分的主角啊!)
(2 ),二叉树: 注意!二叉树是一类与树不同的树型结构!例:判断:二叉树是树的特殊情形(X)
二叉树的性质完全二叉树的性质
二叉树的遍历:前,中,后序遍历其中, 两点在选择或填空中肯定会考到!
(3 ),树和林: 树和林的存储结构①,孩子链表表示法②,孩子兄弟链表表示法
③,双亲表示法其中孩子兄弟链表表示法是树和林与二叉树相互转变的关键应熟练掌握!
树的遍历:前,后和按层次遍厉(注意与二叉树遍厉的区别)(4 )判定树和哈夫曼树:这一节里哈夫曼算法算是个重点,考试时有可能会在应用题中出现,
不过应该不会考程序设计,所以掌握起来还是比较轻松的!4 ,图
(1 ),图的基本概念:顶点,有向图,无向图,弧,边子图,连通图,连通分量,路径,环,网等
(2 ),图的存储结构:邻接矩阵法和邻接表法网要用邻接矩阵法来存储
(3 )图的遍厉:深度优先搜索和广度优先搜索,深度优先搜索是一个递归过程; ,广度优先搜索中,若对x 的访问先于y ,则对x
邻接点的访问也限于对y 邻接点的访问!(4 ),最小生成树:prim算法(很有可能会以应用题的形式出现)
(5 ),拓扑排序:带环的有向图不能进行拓扑排序(拓扑排序是针对有向图的!)写到这里关于数据结构导论的所有最重点章节就都已经介绍完了,后面的三章总共加起来可能
也就不过十几分,不过我们为了万无一失还是应该将其看完,但在后面的章节中,我们只要掌握概念性的东西就可以了,还值得一提的是,对于第八章排序,我们应当加以重视,各种排序方法,及稳定性还
1. 一般情况下,算法的基本操作重复执行的次数是模块n的某一个函数f(n),因此,算法的时间复杂度记做:T(n)=O(f(n)) 分析:随着模块n的增大,算法执行的时间的增长率和f(n)的增长率成正比,所以f(n)越小,算法的时间复杂度越低,算法的效率越高。
2. 在计算时间复杂度的时候,先找出算法的基本操作,然后根据相应的各语句确定它的执行次数,再找出T(n)的同数量级(它的同数量级有以下:1,Log2n ,n ,nLog2n ,n的平方,n的三次方,2的n次方,n!),找出后,f(n)=该数量级,若T(n)/f(n)求极限可得到一常数c,则时间复杂度T(n)=O(f(n)) 例:算法: for(i=1;i<=n;++i) { for(j=1;j<=n;++j) { c[ i ][ j ]=0; //该步骤属于基本操作 执行次数:n的平方 次 for(k=1;k<=n;++k) c[ i ][ j ]+=a[ i ][ k ]*b[ k ][ j ]; //该步骤属于基本操作 执行次数:n的三次方 次 } } 则有 T(n)= n的平方+n的三次方,根据上面括号里的同数量级,我们可以确定 n的三次方 为T(n)的同数量级 则有f(n)= n的三次方,然后根据T(n)/f(n)求极限可得到常数c 则该算法的 时间复杂度:T(n)=O(n的三次方)
3.分类 按数量级递增排列,常见的时间复杂度有: 常数阶O(1),对数阶O(log2n),线性阶O(n), 线性对数阶O(nlog2n),平方阶O(n2),立方阶O(n3),..., k次方阶O(nk), 指数阶O(2n) 。
随着问题规模n的不断增大,上述时间复杂度不断增大,算法的执行效率越低。
建议:多看一些带答案的习题就理解了
sparkedhost怎么样?sparkedhost主机。Sparkedhost于2017年7月注册在美国康涅狄格州,2018年收购了ClynexHost,2019年8月从Taltum Solutions SL收购了The Beast Hosting,同年10月从Reilly Bauer收购了OptNode Hosting。sparkedhost当前的业务主要为:为游戏“我的世界”提供服务器、虚拟...
腾讯云轻量应用服务器又要免费升级配置了,之前已经免费升级过一次了(腾讯云轻量应用服务器套餐配置升级 轻量老用户专享免费升配!),这次在上次的基础上再次升级。也许这就是良心云吧,名不虚传。腾讯云怎么样?腾讯云好不好。腾讯云轻量应用服务器 Lighthouse 是一种易于使用和管理、适合承载轻量级业务负载的云服务器,能帮助个人和企业在云端快速构建网站、博客、电商、论坛等各类应用以及开发测试环境,并提供...
昨天有分享到"2021年Vultr新用户福利注册账户赠送50美元"文章,居然还有网友曾经没有注册过他家的账户,薅过他们家的羊毛。通过一阵折腾居然能注册到账户,但是对于如何开通云服务器稍微有点不对劲,对于新人来说确实有点疑惑。因为Vultr采用的是预付费充值方式,会在每月的一号扣费,当然我们账户需要存留余额或者我们采用自动扣费支付模式。把笔记中以前的文章推送给网友查看,他居然告诉我界面不同,看的不对...