什么是数据结构,数据结构又要学什么?
一. 数据结构实际上处理的问题就是如何利用程序代码把现实世界的问题信息化处理
二. 数据结构考究的还有身为程序员个人如何去利用计算机进行这些信息的高效处理从而创造更多的价值
这种信息化可以举几个例子
1.支付方面:在过去的时间阶段我们的交易方法通常是现金,而现在你想想,思考一下,你有多久出门没有用过现金了,在现在这个社会人们从现金的支付形势变为了微信、支付宝、信用卡等等
2.交友方面:以前我们交友是需要去到学校,在家里周围去找小伙伴,而现在呢?世面上的交友软件比比皆是,每个人只要在qq中加一下好友你就是我朋友了,你只需要在抖音点点关注你就占我的一个永久好友位
而数据结构具体的来说又是什么东西呢?
这么看下来好像还是有点绕,
数据结构简单来说实际上就是一种抽象的封装。
再具体点的说法的话就是把一堆数据按照某种既定格式把他们进行一个规定,排序
我再给举个例子:西红柿炒蛋相信大家都吃过,而在这个地方我同样以西红柿炒蛋为例,这里是百度百科中西红柿炒蛋的做法
好,下面在这里我就用伪码给大家演示一下
首先来抽象一下“番茄炒蛋”
struct 西红柿炒蛋{
鸡蛋 = []
番茄= []
食用油= []
大蒜片 = []
食用盐 = []
味精 = []
葱= []
蒜苗 = []
白糖= []
}
上述这个结构体就是一个自定义的数据结构,将很多种不同的东西融合在一起;而计算机中的数据结构,则是把一些基本的数据类型,如int、double等融合成一些复杂的数据结构,如map、队列。
抽象完口水鸡再来抽象“你”吧
class 你{
float 体重 = 80kg;
int 年龄 = 20;
。。。
此处省略一万字
。。。
bool eat (番茄炒蛋){
番茄炒蛋.番茄 -=25克;
番茄炒蛋.鸡蛋 -=25克;
体重+=50克;
}
}
}
然后再来抽象一下“厨师”:
class 厨师{
番茄炒蛋 做菜(调料){
番茄 番茄 = new 番茄 ();
鸡蛋 鸡蛋 = new 鸡蛋 ();
番茄 .append(300克番茄 );
鸡蛋.append (300克鸡蛋);
把锅烧热;
加入调料;
return 番茄炒蛋 ;
}
}
这里的抽象有点随意,不过大家理解就好,我们把一堆很基本的元素抽象成了3个数据结构,这三个元素就是所谓的数据结构。
而平时我们说的链表无非就是把一些基本元素和指针做了融合,树、图也是把指针和一些基本元素融合后再外加一些流程,如函数。
比如python的dict,dict的key,value就是两种相同或者不同的数据类型;dict还提供了一些函数,譬如get(),set()。dict就是一个典型的被封装的数据结构。