数据结构的分类

数据结构是值相互之间存在着一种或多种特定关系元素的集合

大部分数据结构都需要借助指针和结构体类型来实现。

有数组,链表,队列,栈,树,堆,图,散列表等

:数组

数组是可以实现在内存中连续的储存多个元素的结构,在内存中的分配也是连续的,通过其下标访问,下标从[0]开始。

他的优点是查找起来方便,遍历起来也方便,但他的缺点也很明显,数组的大小不能改变,其次是他的添加和删除比较麻烦,因为需要移动其他的数据。

:栈

栈是一种特殊的线性表,只能在栈顶进行操作,栈底不允许操作,特点是先进后出,后进先出,放入叫入栈,取出叫出栈。

:队列

队列和栈比较类似,但他却支持在一段添加,在另一端取出元素。先进先出。

:链表

链表和数组比较类似,不同的是链表在内存中的储存不是连续的,其元素包括两个节点,一个是用来储存数据的数据域,一个是用来储存指向下个地址的指针域,根据其链表结构的不同,可将其分为单链表,双向链表,循环链表等。

他的优点是可以在创建时再分配内存空间,可以任意添加修改元素,只需改变前后两个节点的指针就可。缺点是查找,遍历起来速度比较慢。

链表有很多人都对其具体操作创建不是很了解,下次我将主要分析链表在平时的一些操作。

:树

树是由n个有限节点组成的一个具有明显层次的集合,其更像是一个树倒挂起来,从上向下看。他的特点有:

1:每个节点有零个或多个子节点。

2:没有父节点的称为根节点。

3:每一个非根节点尤其只有一个父节点。

4:除了根节点外,其余每个子节点都可以形成多个不相交的子树。

平常用的比较多的是二叉树,他既有数组的好处,也有链表的好处,经常用来处理大批量的动态数据。

:散列表

散列表,也叫哈希表,是根据关键码和值 (key和value) 直接进行访问的数据结构,通过key和value来映射到集合中的一个位置,这样就可以很快找到集合中的对应元素。

:堆

堆是一种比较特殊的数据结构,可以被看做一棵树的数组对象,具有以下的性质。

1:堆中的某个节点的值总是不大于或者不小于其父节点。

2:堆总是一颗完全二叉树。

:图

图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将节点称为顶点,边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。

图是一种比较复杂的数据结构,在存储数据上有着比较复杂和高效的算法,分别有邻接矩阵 、邻接表、十字链表、邻接多重表、边集数组等存储结构。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值