数据结构的学习

数据结构主要研究结点(数组、链表、树、图)和结点之间的关系  或者  说指数据对象中数据元素之间的关系  或者(专业术语:非数值计算程序问题中的操作对象以及他们之间的 关系);  不是研究复杂的算法;

数据结构中的基本概念:

数据——程序的操作对象,用于描述客观事物; 特点:可以输入到计算机;可以被计算机程序处理;(比如:int a,.int b 就是数据)

数据对象——性质相同的数据元素的集合 (比如:数组、链表; Teacher array[10]、int array2[10])

数据元素——组成数据的基本单位; (比如:array[0]、array[1]、array[2])     一个一个的结点;

数据项——一个数据元素由若干个数据项组成;  (比如: )

struct  Teacher

{

            int age;                       

            char name[64];                     age、name 就是两个数据项

}


数据结构的逻辑关系:指数据元素之间的逻辑关系,即从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的,逻辑结构课细分为 4 类:

集合 ——数据元素间 除“同属于一个集合”外,无其他关系(散列)

线性结构——一个对一个,如线性表、栈、队列 

树形结构——一个对多个,如 树

图状结构——多个对多个,如 图

数据的物理结构:亦称存储结构,是数据的逻辑结构在计算机存储器内的表示(或映像)。它依赖于计算机。可分为 4 大类:

顺序:借助元素在存储计算器中的相对位置来表示数据元素间的逻辑关系

链式:借助指示元素存储地址的指针表示数据元素间的逻辑关系

索引:                                                    散列:

数据的逻辑结构与存储结构密切相关

算法设计  →  逻辑结构

算法实现  → 存储结构

数据的运算:(操作或处理)在数据的逻辑结构上定义的操作,它在数据的存储结构上实现;  5 种 运算:插入、删除、修改、查找、排序;


算法:特定问题的求解步骤的描述;

算法和数据结构的区别:程序 = 数据结构 + 算法;它们两个相辅相成;

算法特性:

输入:  算法具有0个或多个输入;

输出:算法至少有1个或多个输出;

有穷性:算法在有限的步骤之后会自动结束而不会无限循环;

确定性:算法中的每一步都有确定的含义,不会出现 二义性;

可行性:算法的每一步都是可行的;

算法效率的度量:事后统计法;事前分析估算法;

大O 表示法:

例: 2n+4 →  O(n)、n+2 → O(n)、2 →O(1);

O(1)<O(logn)<O(n)<O(n logn)<O(n^2)<O(n^3)<O(2^n)<O(n!)<O(n^n)


时间换空间;空间换时间;

线性表设计:

线性表的定义:零个或者多个数据元素的集合;数据元素之间是有顺序的;数据元素个数是有限的;数据元素的类型必须相同;


未完成。。。。。。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,046评论 2 89
  • 一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这...
    Winterfell_Z阅读 6,006评论 0 13
  • 強風草知勁,此草質為樹, 草任風雨摧,十年樹中魁, 風雨雖強勁,難阻草歸珍。 简体: 《战草魂》 强风草知劲,此草...
    慢点儿先生阅读 366评论 1 0
  • I Have nothing to say
    青子君心阅读 349评论 0 0
  • 工作方面,把色谱分析搞懂,家庭生活,周六一起去嘟嘟城,周日给两个孩子游泳,周一老公带葡萄去看电影,周中再带咖啡游泳...
    马梦儿阅读 193评论 0 0