数据结构论坛

注册

 

发新话题 回复该主题

程序员要掌握的几种数据结构 [复制链接]

1#
云南治疗儿童白癜风 http://www.xftobacco.com/m/

1、数组

数组是一些具有相同类型的数据的集合,而是数组是固定大小的结构。每个数组都有指定位置的下标,可通过指定的下标查找出数组里的数组。

数组的数据类型可以是整型、字符型、字符串型。当没在里面存值时,每种类型的数组都会有一个默认的值。

2、链表

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。

链表是一种非连续、非顺序的存储结构,链表中的每个节点通过指针指向下一个节点的位置。

链表的节点通常情况下一般包含(1)元素数据(2)指向下一个元素的指针

并且链表必须顺序访问数据,并且无法进行随机访问。

对于数组而言,链表通常用于查询,因为增加和删除,需要移动节点,对资源的消耗大。

3、队列

队列是一种操作受限的线性表,是指只允许在表的一端进行插入操作的数据结构,具有“先进先出”的特点。类似于现实中的排队。

队列中的主要是队头的指针和队尾的指针。当第一次新增的时候队头和队尾指向的都是新增的那个节点,再次添加时队尾就指向新的那个节点了。

当删除的时,去掉队头指向的那个节点。

4、栈

栈是一种“先进后出”的一种结构。主要是通过psuh向栈中添加元素,pop移除栈顶的元素。

5.树

树型的结构可分为许多种,可有二分查找树、红黑树、B树、B+树。

树的结构一般有

key:存储在节点中的值。

left:指向左孩子的指针。

右:指向正确孩子的指针。

p:指向父节点的指针。

B+树结构

6、图

图可分为有向图和无向图。

在图中,最基本的单元是顶点(vertex),相当于树中的节点。顶点之间的关联关系,被称为边(edge)。

上图是用BFS(广度优先搜索算法)查找出来的节点4所指向下一个节点有关联的节点

java软件编程入门自学书淘宝¥49.8¥79.8购买已下架
分享 转发
TOP
发新话题 回复该主题