数据结构的学习

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

数据结构中的基本概念:

数据——程序的操作对象,用于描述客观事物; 特点:可以输入到计算机;可以被计算机程序处理;(比如: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)


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

线性表设计:

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


未完成。。。。。。

你可能感兴趣的:(数据结构的学习)