数据结构

1.数据结构背景的介绍

1.线性的数据结构:

  • 线性表: 一对一的关系,举个例子,在超市排队买东西,前面有人在排队,我们后面有个人在排队,这种叫做线性关系
  • 栈:
  • 队列

  举个栗子: 点名册,学生1号后面2号,2号后面是3号,这是一对一的线性关系,

      存储结构:1.假设点名册,学生的座位号是按照学号来做的 ,我们称这种为顺序存储结构

          2.随机坐,教室里哪里有空位,就去哪里坐,我们称这种叫链式存储

  举个栗子:班里有100个学生,新来了一个学生,它要坐5号的位置,那么原本5号就要往后坐,5号后面的学生都需要往后挪动一个位置,如果是10000个人,新来的同学还要坐5号位置,那么这个效率有多低呀

  存储的方式,对算法的效率是非常有影响的

  思路:首先我们要记住数据与数据之间的关系(逻辑结构),其次我们要把它存储下来,

举个例子:农夫过河,有一个农夫带一匹狼,一只羊喝一颗白菜过河(从河的北岸到南岸),如果没有农夫看关,则狼要吃羊,养要吃白菜.但是船很小,只够农夫带一样东西过河.

人工解题步骤:  理解和分析-所面临的问题   , 寻找解题的途径和方法, 用纸笔等工具计算 ,验证结果

计算机解决:   理解和分析-所面临的问题   , 寻找解题的途径和方法 ,生成算法,  编写程序    

农夫过河算法思路:以向量(人,狼,羊,菜)表示状态,其中每个变元可取0或1,取0表示在左岸(出发点),取1表示在右岸,寻找规律

解决方法:利用队列,图的广度优先遍历等     

2.树 : 一对多的关系

3.图 : 多对多的关系

4.查找

如何查找效率最高?

5.排序

考虑到算法的效率?

2.什么是数据结构?

如何描述数据,数据和数据之间的关系?

-表

-图

数据的的逻辑结构:数据元素之间的逻辑关系

数据的存储结构:数据元素在计算机中的存储方法(表现和实现)

数据结构要做的第一件事情:

把面向的实际问题抽象成出具体的数据模型

如何解决实际的问题?

1.排序,查找

2.求解问题的方法 

3.方法的有效性

数据:学校

数据元素:学生

数据项:name ,age

数据对象:性质相同的数据元素的集合

数据结构:

  • 线性结构
  • 树形结构  一对多, 开始节点(单独一个),树的节点的上一层只对应一个,终端节点没有分支(儿子)
  • 图形结构
  • 集合

数据结构的形式定义:

  一个二元组:

  Date_Structure = (D,S) # D:数据 S:关系

 其中:D是数据元素的的集合,S是D上的关系集合

数据结构的分类:

  • 按照逻辑结构的不同分为:集合,线性结构,树形结构,网状结构
  • 按照物理结构不同分为:
    •   顺序结构:利用在存储器中的物理关系来表示逻辑关系
    •   链式结构:用在存储器中附加指针的方式来表示逻辑关系
幻想毫无价值,计划渺如尘埃,目标不可能达到。这一切的一切毫无意义——除非我们付诸行动。
原文地址:https://www.cnblogs.com/TodayWind/p/13357653.html