zoukankan      html  css  js  c++  java
  • 数据结构

    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上的关系集合

    数据结构的分类:

    • 按照逻辑结构的不同分为:集合,线性结构,树形结构,网状结构
    • 按照物理结构不同分为:
      •   顺序结构:利用在存储器中的物理关系来表示逻辑关系
      •   链式结构:用在存储器中附加指针的方式来表示逻辑关系
    幻想毫无价值,计划渺如尘埃,目标不可能达到。这一切的一切毫无意义——除非我们付诸行动。
  • 相关阅读:
    arcgis for silverlight 控制图层显示级别
    Telerik for silverlight RadAutoCompleteBox 动态数据源
    ARM嵌入式学习--OK6410裸板程序--2.GPIO控制LED跑马灯(从ARM汇编跳转到C语言)
    ARM嵌入式学习--OK6410裸板程序--1.GPIO控制LED
    Linux内核移植--1.添加NAND Flash分区
    Linux 快速释放端口与释放内存缓存
    jquery ajax session超时处理
    相濡以沫不如相忘江湖
    SQL Server数据库无法启动(万金油解决办法)
    多显示器实现屏幕扩展(VGA DVI HDMI)
  • 原文地址:https://www.cnblogs.com/TodayWind/p/13357653.html
Copyright © 2011-2022 走看看