【基础编程】侃侃数据结构与算法-扯扯概念

为啥扯淡,因为我们开发人员很少用到它,目前流行的android开发有数据结构么?没有,至少你在用api的时候基本上是看不见的。c++有在STL基本容器中string, vector, list, deque, map等。人家都已经实现且以近完美,我们学它有啥用有必要吗?

这个争论由来已久,很多人认为,只要掌握几种开发工具,熟悉api就是编程高手,其实这是种误解。要想成为一个专业的开发人员,仅前面这点东西是不够的。充其量就是一个编码高手。

一、什么是数据结构

还是老一套生活中的例子,你上学吧,你高考吧,是不是有姓名,性别,年龄,户口等。这些信息就构成一个小的数据结构。这些东西要如何存放在计算机中,各个结构间有什么关系,对整体有那些需要操作。比如查询,删除呀,怎么存储操作效率会高效呀,这就是数据结构。

通俗理解,数据相对于书,数据结构相当于书架。要取得书就在书架上面取,为了更快的取到想要的书,书架可能分在N个格子,不同种类的书放在不同的格子里面。

二、数据结构能干什么

至于数据结构能干什么... 知道了人体结构就可以进行解剖了,当然你也可以研究怎么更快的杀死一个人,或者制伏一个人,或者造一个人,或者画一个人,总之, 它能干什么, 不在于它是什么, 而在于"你想干什么"。

三、为什么学习数据结构

咱们学习数据结构可不是为了杀死一个人,造一个人。原因很简单它能让是你的程序变得更优(运算更快,占用资源更少)如果把程序看成一辆汽车,那么程序语言就构成了这辆车的车身和轮胎。而算法则是这辆车的核心——发动机(中国汽车发动机不行因为他们不懂数据结构)。这辆车跑得是快是慢,关键就在于发动机的好坏(当然轮胎太烂了也不行),而数据结构就是用来改造发动机的。

还有就是逼格够高,你懂的......

四、基本数据结构

基本数据结构有如下几类

我们介绍几种常用的结构先就着图留个印象

常用的线性结构有:线性表,栈,队列,数组,串。

线性表:

栈:

队列:

非线性结构:二维数组,多维数组,树(二叉树等),广义表,图。

二位数组:

树:

二叉树:

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-04-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据结构与算法

2821 天使之城

2821 天使之城  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果 题目描述 Descriptio...

3046
来自专栏小小挖掘机

数据城堡参赛代码实战篇(三)---我们来探究一个深奥的问题!

每天12点是小编最激动的时候,因为自己写的帖子又可以与大家见面啦,昨天把帖子传到某个大神组织的数据挖掘交流群时,某挖掘机朋友问了小编一个深刻的问题,题目看似很简...

3265
来自专栏take time, save time

[细节决定B度]之二分搜索也不易啊

     实事求是的说二分搜索是我学习算法的时候学的最好,理解的最透彻,能够当时就写出代码的的算法。事到如今,就如我可以分分钟写出hello world一样,我...

2706
来自专栏ACM算法日常

唯快不破的01序列——位运算初识

众所周知,计算机的运算使用的就是二进制,它会把十进制的数转化为二进制,然后进行二进制运算,最后再转回十进制展现给我们。而位运算指的是:由于数字在计算机里...

523
来自专栏C语言及其他语言

初学C语言的学习计划

背景:很多同学在学习C语言的过程中,常常会遇到这样的问题,即“教材看完了,知识点也懂,但写不出来程序”,这段时间,我们通过长期与有多年C语言研究经验的教授、教师...

3094
来自专栏数据结构与算法

10.25解题报告

预计分数:40+50+4=94 实际分数:30+15+0=45 T1 https://www.luogu.org/problem/show?pid=T14791...

2514
来自专栏小樱的经验随笔

HUST 1584 摆放餐桌

1584 - 摆放餐桌 时间限制:1秒 内存限制:128兆 609 次提交 114 次通过 题目描述BG准备在家办一个圣诞晚宴,他用一张大桌子招待来访的客人...

2528
来自专栏怀英的自我修炼

怀英漫谈2-JS语法初涉

今天碰了一下JS的语法,想与你聊聊这个。这篇文章适合前端设计师,不过在文末,我也为你准备了一些感悟,有兴趣的不妨跳到最后一看。 总体来看,JS的语法和Java的...

34310
来自专栏python学习之旅

测试工程师的一些面试题目(python)和总结

    1、输入:JSON {"a":"aa","b":"bb","c":{"d":"dd","e":"ee"}}   输出:字典 {'a': 'aa', 'b...

972
来自专栏老九学堂

为什么每个程序员都需要学习算法?

懂算法的程序员 ? 不懂算法的程序员 ? 算法的力量 算法是计算机科学领域最重要的基石之一,但却受到了一些程序员的冷落。 许多小伙伴看到一些公司在招聘时要求的...

3628

扫码关注云+社区