数据结构学习笔记(一)

引言

        数据结构是一种计算机科学技术领域广泛使用的专业术语。数据结构可以理解为:数据 + 结构数据是描述客观事物的符号,为程序操控,存储在计算机上,结构包括数据的逻辑结构和存储结构。而数据结构+算法就等于程序,本系列的学习笔记将整理数据结构的相关知识,包括链表,循链表,队列,栈,树,图等知识。

一、数据结构中相关概念

        1.1数据的定义

                描述信息的载体,数据能够被计算机识别并存储,并且能够参与计算机内部的运算

        1.2结构的定义

                结构的定义是用来描述数据与数据之间的关系

                1.2.1 数据与数据之间存在逻辑关系有:

                        线性关系(链表),层次关系(树),网状关系(图)

                1.2.2 线性结构:        

                        头结点只有着后继结点,尾结点只有这前驱节点,其他的节点都有着一个前驱节点和一个后继节点

数据结构学习笔记(一)_第1张图片

                1.2.3 层次结构:

                        根节点没有前驱节点,其他节点有前驱节点,后继结点的数目可以有任意多。

数据结构学习笔记(一)_第2张图片

                1.2.4 网状结构:

                        每一个节点都可以有着多个前驱节点和多个后继节点

数据结构学习笔记(一)_第3张图片

        1.3 数据结构的定义

                数据结构指的是数据元素及数据元素之间的相互关系,或者组织数据的形式。

                1.3.1 数据之间的相互关系

                (1)逻辑结构:数据运算之间的抽象关系。

                (2)存储结构:逻辑结构在计算机中具体实现方法,分为顺序存储方式、链接存储方式、索引存储方式、散列存储方法。

                (3)数据运算:对数据进行的操作,如插入,删除,查找,排序等。

数据结构学习笔记(一)_第4张图片

二、算法的相关知识

        2.1算法的定义:

                算法是一个有限规则的有序的集合,确定了解决某一问题的一个运算序列

        2.2 算法的特点:

                算法的特点有,有穷性,确定性,可行性等的特点。

        注意:优秀的算法有着运算的时间短,程序占用的内存空间少,便于维护等特点。

三、顺序表

        3.1 顺序表的定义:

                线性表的顺序存储叫做顺序表

        3.2 顺序表的结构:

#define N 20

#define datatype int 

typedef struct {

        datatype data[N];

        int pos;

}seqlist_t;

数据结构学习笔记(一)_第5张图片

        3.3 顺序表中的成员关系

                data[0]:线性表的表头,没有前驱节点,只有后继节点

                data[19]:线性表的尾节点,没有后继节点,只有前驱节点

                data[n]:data[n-1]就是他的前驱,data[n+1]就是它的后继,最终通过这种方式构成线性表

        3.4 顺序表的优缺点

                3.4.1顺序表的优点:顺序表的结构简单,内存在内存上是连续的,对于顺序表的操作可以通过下标完成。

                3.4.2顺序表的缺点:顺序表的扩展性非常的差,顺序表的位置插入和位置删除的时间复杂度非常的高。

四、单链表

        4.1单链表的定义:

                线性表的链式存储就是单链表

        4.2 单链表的结构

                4.2.1单链表的特点

                单链表没有个数限制,在使用的时候就是通过动态分配内存的方式来开辟节点空间,开辟的新节点和原来的单链表通过一个指针进行关联

                4.2.2单链表节点的格式

数据结构学习笔记(一)_第6张图片

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