一、什么是循环双链表 从上一节我们看出循环单链表是尾节点指针指向头节点,那么以此类推,我们的循环双链表就是头节点的prior指针指向尾节点。所以我们在判断循环双链表是否为空时就是其prior和next同时指向一个节点就为空。 循环双链表的结构: typedef struct CDLinkNode { ...
分类:
其他好文 时间:
2020-07-12 18:39:29
阅读次数:
64
一、什么是循环单链表 循环单链表与单链表最本质的区别就是最后一个指针指向的节点不是NULL而是指向头节点,从而形成一个闭环。 所以我们在判断指针是否指向尾节点时候的判断条件就是他的next是否指向头节点。 循环单链表的结构: typedef struct { //定义循环单链表的节点类型 ElemT ...
分类:
其他好文 时间:
2020-07-12 18:33:37
阅读次数:
59
1.1 栈 栈: stack,又称堆栈,它是运算受限的线性表,其限制是仅允许在标的一端进行插入和删除操作,不允许在其 他任何位置进行添加、查找、删除等操作。 简单的说:采用该结构的集合,对元素的存取有如下的特点 先进后出(即,存进去的元素,要在后它后面的元素依次取出后,才能取出该元素).例如,子弹压 ...
分类:
其他好文 时间:
2020-07-11 20:58:58
阅读次数:
56
一、什么是链表 线性表的链式存储又称之为单链表,他是通过内存中任意一块区域来存储数据元素的,为了让每一块的元素建立逻辑关系,我们把每一块的数据存储单元分为两个部分,第一个部分为数据部分,第二个部分为指向下一个节点的指针,所以在插入和删除的时候,链表不需要对元素大量的进行移动,只需修改指针即可。 二、 ...
分类:
其他好文 时间:
2020-07-11 19:02:59
阅读次数:
45
顺序查找 顺 序 查 找 法 的 特 点 : 用 所 给 关 键 字 与 线 性 表 中 各 元 素 的 关 键 字' 逐 个 比 较 ', 直 到 成 功 或 失 败 。 存 储 结 构 通 常 为 顺 序 结 构 , 也 可 为 链 式 结 构 。 typedef struct { ElemTy ...
分类:
其他好文 时间:
2020-07-11 17:36:23
阅读次数:
179
(ArrayList 源码分析-jdk11 (18.9)) 1.概述 ArrayList 是一种变长的集合类,基于定长数组实现。ArrayList 允许空值和重复元素,当往 ArrayList 中添加的元素数量大于其底层数组容量时,其会通过扩容机制重新生成一个更大的数组。另外,由于 ArrayLis ...
分类:
其他好文 时间:
2020-07-11 14:25:30
阅读次数:
76
线性表 由同类型数据元素构成有序序列的线性结构 表中元素个数称为线性表的长度 线性表没有元素时,称为空表 表起始位置称表头,表结束位置称表尾 线性表的抽象数据类型描述 线性表是n个元素构成的有序序列 性表基本操作 List MakeEmpty() 初始化一个空线性表L List MakeEmpty( ...
分类:
其他好文 时间:
2020-07-11 11:19:42
阅读次数:
76
二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
分类:
编程语言 时间:
2020-07-10 19:34:57
阅读次数:
72
介绍 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 前提 必须待查找的序列有序 时间复杂度 O(log2n) 原理 1)确定该期间的中间位置K 2)将查找的值t与array[k]比较,若相 ...
分类:
编程语言 时间:
2020-07-10 17:00:04
阅读次数:
56
概念 解释 线性表 n(n(-N)个具有数据特性相同的数据元素(即同属于一个数据对象的数据元素)的有限序列, n被称为线性表的长度 空表 线性表的长度0的线性表 线性结构的基本特点 1)必存在唯一个被称作“第一个”的数据元素(n>=0) 2)必存在唯一一个被称作“最后一个”的数据元素(n>=0) 3 ...
分类:
其他好文 时间:
2020-07-10 11:43:35
阅读次数:
68