大学生学编程(十):数据结构与算法的基本概念

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

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

加学习群892643663获取完整视频和全套免费C/C++学习资料

一、什么是数据结构

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

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

二、数据结构能干什么

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

三、为什么学习数据结构

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

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

四、基本数据结构

基本数据结构有如下几类

在这里插入图片描述

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

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

线性表:

在这里插入图片描述

栈:
在这里插入图片描述

队列:

在这里插入图片描述

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

二位数组:

在这里插入图片描述

树:

在这里插入图片描述

二叉树:

在这里插入图片描述

这篇我们就只扯一些概念一些基本数据结构,有图有真相。

大家如果对编程感兴趣,想了解更多的编程知识,解决编程问题,想要系统学习某一种开发知识,我们这里有java高手,C++/C高手,windows/Linux高手等,大家可加入我们的qq群(C/C++群892643663:,Java群:851531810),大牛在线为您提供服务,还有编译大礼包和学习教程赠送哦。

猜你喜欢

转载自blog.csdn.net/weixin_43659511/article/details/85262500