(数据结构)--日常充电一天我不学习浑身难受,就像是不锻炼一样睡不着觉

一、什么是数据结构?

二、为什么我们需要数据结构?

三、常见的数据结构?

四、数组

五、栈

六、队列

七、链表

八、图

九、树

十、字典树

十一、哈希表

一、什么是数据结构?

简单的说,数据结构是以某种特定的布局方式存储数据的容器,这种布局方式决定了数据结构对于某些操作是高效的,而对于其他操作则是低效的。首先我们需要理解各种数据结构,才能在处理实际问题时选取最合适的数据结构。

二、为什么我们需要数据结构?

数据是计算机科学当中最关键的实体,而数据结构则可以将数据以某种组织形式存储,因此,数据结构的价值不言而喻

       无论你用何种方式解决何种问题,你都需要处理数据--无论是设计员工薪资,股票价格,购物清单,还是知识简单的电话薄问题。

       数据需要根据不同的场景,按照特定的格式进行存储。有很多数据结构能够满足以不同格式存储满足以不同格式存储数据的需求。

三、常见的数据结构?

    常见的数据结构

数组    、栈  、队列、  链表、 树、 图、 字典树 、 散列表

四、数组

数组是最简单,也是使用最广泛的数据结构、栈、队列等其他数据结构均数组演变而来的。

每个数据元素都关联一个正数值,我们称之为索引,它表明数组中每个元素所在的位置,大部分语言将初始索引定义为零、

以下是数组的两种类型

-一维数组

-二维数组(数组的数组)

数组的基本操作

Insert  -----在指定索引位置插入一个元素

Get---- 返回指定索引位置的元素

Delete-删除指定索引位置的元素

Size--得到数组所有元素的数量

五、栈

一堆垂直堆放的书。为了拿到中间的书,你需要移除防止在这上面的所有书。这就是LIFO(后进先出)的工作原理

栈的基本操作:

Push--在顶部插入一个元素

PoP--返回并移除栈顶元素

isEmpty-如果栈为空,则返回true

Top--返回顶部元素,但并不移除它

六、队列

与栈相似,队列是另一种顺序存储元素的线性数据结构,栈与队列的最大差别在于栈是LIFO(后进先出),而队列是FIFO,即先进先出

 

  一个完美的队列现实例子:售票亭排队队伍。如果有新人加入,他需要到队尾去排队,而非队首---排在前面的人会先拿到票,然后离开队伍。

队列的基本操作

 Enqueue()--在队尾部插入元素

Dequeue()--移除队列头部的元素

isEmpty()--如果队列为空,则返回true

Top()--返回队列的第一个元素

七、链表

链表是另一个重要的线性数据结构,乍一看可能有点像数组,但在内存分配,内部结构以及数据插入和删除的基本操作方面均有所不同。

链表就像一个节点链,其中每个结点包含着数据和指向后续结点的指针,链表还包含一个头指针,它指向链表的第一个元素,但当列表为空时,它指向null或无具体内容.

链表一般用于实现文件系统,哈希表和邻接表。

链表包括以下类型:

单链表(单向)

双链表(双向)

  链表的基本操作

InsertAtEnd--在链表的末尾插入指定元素

InsertAtHead-在链表列表的开头/头部插入指定元素

Delete-从链表列表中删除指定元素

 DelteAtHead-删除链表了列表的第一个元素

Search-从链表中返回指定元素

isEmpty-如果链表为空,则返回true

八、图

图是一组以网络形式相互连接的结节点,节点也成为顶点,一对节点(x,y)称为边(dege),表示顶点x连接到顶点y,边可以包含权重/成本。显示从顶点x到y所需的成本。

图的类型:  无向图  有向图

在程序语言中,图可以用两种形式表示:

邻接矩阵     邻接表

常见图遍历算法

广度优先搜索      深度优先搜索

九、树

树形结构是一种层级式的数据结构,由顶点(节点)和它连接他们的边组成,树类似图,但区分树和图的重要特征是树中不存在环路

 

树形结构背管饭应用于人工智能和复杂算法,它可以提供解决问题的有效存储机制

树: N元树  平衡树  二叉树  二叉搜索树   AVL树  红黑树   2-3树

其中----二叉树和二叉搜索树是最常用的树。

十、字典树Tire

字典树,也成为“”前缀树“是一种特殊的树状数据结构,对于解决字符串相关问题分厂有效,它能够提供快速检索,主要用于搜索字典中的单词,在搜索引擎中自动提供建议,甚至被用于IP的路由

十一、哈希法

哈洗发 是一个用于唯一标识对象并将每个对象存储在一些预先计算的唯一索引成为Key Value中的过程,因此,对象以键值对的形式存储这些键值堆的结合被称为字典,可以使用键值搜索每个对象,基于哈尔法有很多不同的数据结构,但最常用的数据结构是哈希表.

散列数据结构的性能取决于以下三个因素

哈希函数

哈希表的大小

碰撞处理方法

 

 

 

 

 

 

 

 

你可能感兴趣的:((数据结构)--日常充电一天我不学习浑身难受,就像是不锻炼一样睡不着觉)