数据结构教程及定义

数据结构的定义:
    计算机存储和组织数据的方式,一种或多种特定关系的数据元素集合

数据结构的作用:
    提升程序的运行效率,节省系统的内存资源,不同的数据结构有不同的应用场景

常见的数据结构:

数组(array):

        优缺:

连续存储,线性结构,方便查找(O(1)),不方便插入和删除(O(n))
        在内存中开辟一块连续的空间
        一个数组可以拆分成多个数组,多个数组也可以合并为一个数组
        通常情况下,一个数组中的每个元素都是同一个类型的,这也决定了数组的类型
        数组可以是一维也可以是二维甚至是多维

链表(LinkedList):

定义:

在物理上非连续、非顺序的数据结构、由若干个节点组成

分类:

单链表:每个节点包含两个部分,其一:当前节点的数据,其二:下一个节点的指针
            双链表:每个节点包含三个部分,其一:...,其二:...其三:上一个节点的指针
            循环链表:拥有双链表的基本特点,并且最后一个节点的下一个指针指向第一个元素,第一个元素的上一个指针指向最后一个元素
        不需要初始化容量,可以任意添加/删除元素
        查询效率低,插入/删除效率高,因为每个元素都要存储其他节点的指针,因此占用空间大

单链表:

双链表:

循环链表:

堆栈(stack):

栈:

线性结构,先进后出
            两个基本操作:
                push用于将元素压入栈
                pop用于删除栈顶元素
            跟数组的区别:
                数组取出元素时,数组中的数据还在
                从栈顶取出元素时,是直接将元素吐出来,栈中不再存储该元素

队列(queue):

定义:

线性结构,先进先出,只允许在一端进行插入,在另一端进行取出
        队列中没有元素时,被称为空队列

哈希表(hash):

定义:

又称散列表,根据键值(k/v)进行直接存储/访问的数据结构

优点:

对于一些大数据多数据,hash表处理起来比较轻松
            能够快速的 查,改,插,删元素 等操作
            代码简单(自己想好hash函数就完成啦)

缺点:

在hash函数处理某些元素的时候,不免出现下标重复相同的情况,这种情况可以称作为冲突
            哈希表中的数据都是没有顺序的
        HASH表的基本操作:
            计算hash函数的值
            定位到对应链表

二叉树(tree):

定义:

是树的一种特殊形式,每个节点至多有两个子节点,称为左子节点和右子节点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值