数据结构复习—1.1

一、什么是数据结构

 结构:实体+关系

数据结构:

1、按照逻辑关系组织起来的一批路径

2、按一定存储方法把他存储在计算机中

3、在这些数据上定义了一个运算的集合

二、数据结构的逻辑结构

线性结构

  线性表(表、栈、队列、串等)

非线性结构

  树(二叉树、Huffman树、二叉检索树等)

  图(有向图、无向图等)  

三、数据的存储结构

四类:顺序、链接、索引、散列

1、顺序:存储单元的顺序地址,例如数组

2、链接:指针的地址指向关系,如链表

3、索引:对数据建立一个索引的表,然后通过这个表能够有效的找到相应的数据存储地址

4、散列:一种特殊的索引结构,散列能通过对要查的关键码的一个映射,能够在整个散列表里面快速地找到它的存储空间,然后把相应的数值找出来。

抽象数据类型ADT(Abstract Data Type)

-定义了一组运算的数学模型

-与物理存储结构无关

-使软件系统建立在数据之上

抽象数据结构二元组

  <数据对象D,数据操作P>

先定义逻辑结构,在定义运算

  逻辑结构:数据对象及其操作

  运算:数据操作

例:栈的抽象数据类型ADT

  逻辑结构:线性表

  操作特点:限制访问端口

    -只允许在进行插入、删除操作

    -入栈(push)、出栈(pop)、取栈顶(top)、判栈空(isEmpty)

template<class T>        //栈的元素类型为T    
class Stack{
public:                                         //栈的运算集
    void clear();                           //变为空栈
    bool push(const T item);         //item入栈,成功返回真,否则返回假
    bool pop(T & item);               //弹栈顶,成功返回真,否则返回假
    bool top(T& item);                //读栈顶但不弹出,成功真,否则假
    bool isEmpty;                     //若栈已空返回真
    bool isFull();                           //若栈已满返回真
      
}    

猜你喜欢

转载自www.cnblogs.com/xy-l/p/10663479.html