数据结构与算法
不善言谈。
学无止境
展开
-
数据结构、算法的概述
一、什么是数据结构 数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合,通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。 简单来说,数据结构就是数据元素之间存在的一种或多种特定的关系。而子啊数据结构中将这种特定的关系分成了两类 1、逻辑结构:是指数据对象中数据元素之间的相互关系 集合结构:是指集合结构中的数据元素除了同属一个集合...原创 2019-09-09 19:20:52 · 135 阅读 · 0 评论 -
动态数组(一)线性表、栈
一、什么是线性表 线性表是指零个或多个数据元素的有限序列,首先线性表是一个序列,除了第一个元素没有前排元素(前驱)、最后一个元素没有后排元素(后继),其他的元素每一个都有自己的前驱以及后继。 顺序存储结构 1、线性表的顺序存储结构 指的是是用一段地址连续的存储单元依次存储线性表的数据元素, 线性表的三个属性:1、存储空间的起始位置,2、xian线性表的最大存储容量,3、线性表的当前长度 ...原创 2019-09-10 12:23:53 · 143 阅读 · 0 评论 -
动态数组(二)队列
一、什么是队列 队列(Queue):具有一定操作约束的线性表。只能在一端插入,而在另一端删除。 队列的特点:先进先出(FIFO) 队列的具体实现接口 1、进队操作 2、出队操作 3、判空操作 package com.openlab.p3队列; public interface Queue<E> { public int getSize(); public...原创 2019-09-10 12:41:02 · 137 阅读 · 0 评论 -
动态链表(一)概述及单链表
一、动态链表的产生 前面的博客我们简单了介绍了线性表,而链表是线性表的一种,所谓的线性表包含顺序线性表和链表,顺序线性表是用数组实现的,在内存中有顺序排列,通过改变数组大小实现。而链表不是用顺序实现的,用指针实现,在内存中不连续。意思就是说,链表就是将一系列不连续的内存联系起来,将那种碎片内存进行合理的利用,解决空间的问题。 说的通俗一点,就是链表的出现弥补了顺序线性表对空间的浪费问题,同时他...原创 2019-09-19 12:54:14 · 2463 阅读 · 0 评论 -
动态链表(二)单向循环链表
在上一篇博文中我们介绍了动态链表以及单链表的实现,今天我们来看一下链表中的单向循环链表,首先我们回顾一下单链表,我们都在知道在单链表中插入或者删除dou都必须进行遍历,找到对应位置的前驱结点,且只能从前往后,因为单链表值得就是单向链表。所以只能从前向后,这就导致当中某一个结点就没有办法找到他的前驱结点了。 因此,有了我们有了单向循环链表,循环链表就是将本来没有指向的尾结点元素的下一跳指向头结点,...原创 2019-09-20 17:51:32 · 407 阅读 · 0 评论