数据-数据结构和数据算法

之前关于数据和数据结构以及数据算法的理解很模糊,或者说不准确,今天好好的理解了一遍。 自己举了一个例子希望觉得还可以,分享出来希望帮到一点大家。

例子:烧开一壶水。

正常我们烧开一壶水,步骤通常是

先把水导入水壶,把水壶放在火上,等到水开,把火关掉。(什么电烧水,劈材烧水就不要想了,不再讨论范围内)

上面4个步骤可以理解为“算法”。 这里也可以体会下算法的几个特性:

  1. 输入
  2. 输出
  3. 有穷性
  4. 确定性
  5. 可行性

解释: 输入的水,输出的开水,5个步骤为有穷性,每个步骤做什么一目了然,不重复不含糊为确定性,可行性就是这几个步骤确实可行,步骤2不是说要你把水壶放在长征一号的发射台加热。

说完了算法来说下数据

数据是计算机的核心。 你可以把上面的水理解为数据,你要有水了才会去执行上面5个步骤,没水你玩什么。

说完了数据。来说下数据结构

说到数据结构,需要先说下数据结构分为数据的逻辑结构和数据的实际存储结构

   正如上面的例子,水(数据),水的分子式都是H2O,  我们可以理解为,H2O是水的实际结构,一个氧原子附近两个氢原子,而通常看见的自来水和矿泉水是一种外在的表现形式。相对应数据来说,数据实际存储在硬盘光盘等介质中的样子就是数据的存储结构,而对外表现的时候,程序员编程用的时候,就会变成通常的形式,比如编程时候的数组[]是一种数据的逻辑结构,而在内存中是数据是用一个顺序存储的二叉树来存储等。

以上说完不知道大家对于数据,数据结构,和算法有没有一点理解了。 算法就是解决问题的步骤,数据就是解决问题的已知条件,数据结构就是把这些条件整理,以便于算法能够高效的解决问题。

数据结构分为逻辑结构和实际存储结构,逻辑结构我理解就是编程的一般所见。 实际的结构分为,线性表,栈,队列,串,数组和树以及图。

线性结构和非线性结构

这些数据结构按照元素之间的关系。可以分为线性结构和非线性结构。  线性结构就是元素之间一个一个排列,具有单一的前驱和后驱。 1-2-3-4  这种,线性表,栈,队列,串 和数组分为线性结构,一对一的关系。  树和图分为非线性结构,非线性结构就是元素之前相互联系,类似多对多的关系,一对多的关系。  

顺序存储和链式存储

顺序存储和链式存储是指元素之间在内存中存储的实现方式。 比如线性结构,元素之间都是一个一个排列的,但是实现一个一个排列,也是有不同方式的,比如1234567这种形式(顺序存储),7个元素之间一个一个紧密排列,1不需要指定下一个元素是那个,因为一定是2。 也可以是1>2>3>4>5>6>7.这种方式(链式存储),由前一个元素1指定下一个元素2。指定的方式其实所说就是大家肯定在其他地方听过或者见过的指针,头指针,尾指针。 

 

 

 

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值