前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【答疑解惑第三十八讲】初学者做项目需要掌握哪些东西?

【答疑解惑第三十八讲】初学者做项目需要掌握哪些东西?

作者头像
程序员互动联盟
发布2018-03-15 17:10:18
6550
发布2018-03-15 17:10:18
举报
疑惑一

【答疑解惑】初学必须掌握的数据结构有哪些?

数据结构有很多,难以程度也不相同,初学者应该掌握哪些基本的数据结构呢?作为一个过来人,我觉得作为一个初学者应该掌握如下一些数据结构,当然掌握越多当然是好的,这里是从一个常用和难以程度综合权衡,对大多数初学者的建议,其他一些相对较难的以后慢慢在学校。

1)一维数组,二维数组以及更高维数的数组,尤其一二维最为常用,一定要掌握,不单单是赋值、访问,还包括相应指针定义及使用。

2)链表,包括单项链表,双向链表;链表的添加、删除、遍历、查询等等。

3)队列,能够实现基本的数据队列,模拟消息队列的发送,接收,消息满及空的管理。

4)栈,包括栈的基本进栈、出栈、栈空栈满管理。

5)树,包括基本的二叉树,普通树。能进行树节点的增加、删除、遍历和查询。

以上作为初学必须掌握的一些基本数据结构,也是最为常用和通用的内容。等到这些内容能熟练掌握之后,可以进一步学习相对复杂一些的其他内容,比如平衡树、红黑树、B数、图以及一些对应的算法。初学者除了掌握上面这些基本数据结构,最关键的是要理解他们的特点,也就是说要学会什么样的问题适合用什么数据结构来描述,只有这样才能灵活应用他们,毕竟数据结构是为编程服务的。

疑惑二

【答疑解惑】初学者参与项目必须掌握哪些基本知识

初学者学习到一定程度,可以参与或者自己找一些项目来提高自己的水平和视野。只是学习书本上的东西会让你心里觉得不踏实,可以说综合水平的提高只有通过大量的项目练习才能做到。当然不是一开始学习就进入项目阶段,那样你会觉得到处都是不懂的东西,也就是说在进入实际项目之前还是的会一些基本知识才行。下列列举了一些必备的,学会和了解了这些内容在去接触项目会让你更轻松的过渡到项目参与和开发。

1,具备加扎实的基本功,至少书上常用的知识点都要会,这个往往通过最开始的学习和练习能逐渐达到。

2,学习基本和常用的数据结构和算法知识,比如上面的数据结构作为一个初学者是应该掌握和灵活应用的。

3,学习一些平台相关知识,系统调用,API调用,能查阅API参考手册。

4,学习基本的多线程相关知识,几乎每一个使用的项目都会用到多线程的知识、同步和互斥等等,理解为什么需要使用它们。

5,能看到常用的算法代码,比如常用排序,查找。阅读代码也是一种重要的能力,因为很多情况下是你在别人的基础上去修改代码而不是重新开始。所以你需要在看懂别人的代码基础之上进行修改。

有了上述这些基本知识,就能比较平滑的切入实际项目开发。当然更多的知识往往是在项目开发过程中逐渐学校和提高。

疑惑三

【答疑解惑】如何正确比较浮点数

浮点数在内存中是按照科学计数法存储的。 单精度浮点数用32位存储,最高位为符号位,接下来中间的8位存指数部分,表示数值大小范围。最低的23位作为尾数表示精度。 双精度浮点数用64位存储,最高位为符号位,接下来中间的11位存指数部分,表示数值大小范围。最低的51位作为尾数表示精度。 正因为浮点数不像整数那样是一个精确的数值,浮点数的精度部分在计算机中不可能无限长度,是一个有有限精度的值,所以在计算机中是不能准确判断这两个数是否真正相当,只能在一个精度返回内去判断。 在float.h文件中,实际上已经给出了用于判断浮点数最小的依据: #define FLT_EPSILON 1.19209290E-07F #define LDBL_EPSILON 1.084202172485504E-19 当然这个是最小能分辨出来的浮点数了,实际应用中可以根据实际情况选取。

因此要判断两个浮点数是否相等,只能在一个精度范围内来判断,比如按差值小于10的-5次方就认为是相等的了:

if (fabs(f1 - f2) <= 1.0E-5F)

// to be equal

else

//NOT to be equal

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-01-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员互动联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档