上一次的C++链表实现两个单链表的连接不太理想,此次听了一些视频课,自己补了个尾插法,很好的实现了两个链表的连接,当然了,我也是刚接触,可能是C++的一些语法还不太清楚,不过硬是花了一些时间尽量在数据结构中将c++的语言特点表现出来。一开始也是不愿意读c++的数据结构,只是一种挑战心里,不想读着读着 ...
分类:
编程语言 时间:
2019-11-02 11:58:31
阅读次数:
81
A. Dove 打扑克 考场思考半天线段树树状数组,没有什么想法 打完暴力后突然想到此题用链表实现会很快。 因为只有$n$堆,所以设最多有$x$个不同的堆数,那么$x\times (x-1)/2==n$, 所以链表中最多有$\sqrt{n}$个元素, 所以可以用一个$set$维护当前的出现元素,每次 ...
分类:
编程语言 时间:
2019-10-29 09:41:23
阅读次数:
100
概念 什么是消息 消息是指在两个独立的系统间传递的数据。这两个系统可以是两台计算机,也可以是两个进程。 消息是平台无关和语言无关的! 什么是队列 队列是一种数据结构,内部是用数组或链表实现的, 队列的特点是只能队尾放入,队头取出,即先入先出【FIFO】 队列的操作有入队和出队 也就是你有一个程序在产 ...
分类:
其他好文 时间:
2019-10-19 11:31:41
阅读次数:
1512
用一个哈希表和双向链表来实现。 哈希表记录节点是否存在,并计数 双向链表实现按优先级删除和添加。链表头为长时间未使用的低优先级,链表尾为最近使用的高优先级。 ...
分类:
系统相关 时间:
2019-10-17 23:33:27
阅读次数:
85
一:堆栈的引入 堆栈可以比较好的解决后缀表达式的问题。 拓展一: 中缀表达式:运算符号位于两个运算数之间;例如a + b * c - d/c; 后缀表达式:运算符号位于两个运算数之后;例如ab * + de -; 这个时候就需要一种存储办法,能够顺序存储运算数,并在需要的时候倒序输出,这就需要堆栈。 ...
分类:
编程语言 时间:
2019-10-17 21:53:11
阅读次数:
121
一、实验内容 【问题描述】 设计一个实现任意长的整数进行加法运算的演示程序 。 【基本要求】 利用双向循环链表实现长整数的存储,每个结点含一个整形变量。输入和输出形式:按中国对于长整数的表示习惯,每四位一组,组间用逗号隔开。 【测试数据】 (1)0;0;应输出“0”。 (2)-2345,6789;- ...
分类:
其他好文 时间:
2019-10-17 11:53:13
阅读次数:
76
简介 java集合类是java.util 包中的重要内容。java集合框架包含了大量集合接口以及这些接口的实现类和操作他们的算法。 java集合框架图 主要提供的数据结构 + List 又称 有序的Collection 。它按照对象的进入顺序保存对象,可以对列表中的每个元素的出入和删除元素位置进行精 ...
分类:
编程语言 时间:
2019-10-13 16:45:23
阅读次数:
94
关于栈与队列 栈与队列是特殊的线性表。 访问,插入,删除等操作只能在栈顶进行;对于队列,元素只能从队尾插入,从队头删除和访问。 换句话说,栈和队列是有操作限制的线性表。 顺序存储的栈称为顺序栈;链式存储的栈称为链式栈。 基于数组实现栈 基于链表实现栈 基于数组实现队列 基于链表实现队列 ...
分类:
其他好文 时间:
2019-10-08 14:20:51
阅读次数:
85
HashSet特性: 无法保证元素顺序 允许null值 非线程安全 HashSet的底层通过HashMap实现的,而HashMap在1.7之前使用的是数组+链表实现,在1.8+使用的数组+链表+红黑树实现。其实也可以这样理解,HashSet的底层实现和HashMap使用的是相同的方式,因为Map是无 ...
分类:
其他好文 时间:
2019-10-08 12:27:52
阅读次数:
85
ConcurrentLinkedQueue ConcurrentLinkedQueue内部的队列使用带头节点的单向链表实现,并且维持头尾两个指针,头指针出队、尾指针入队。该队列的出队入队操作都是线程安全的。 保证安全的方式 对于头尾指针均使用volatile关键字修饰从而保证可见性,对于头尾指针的修 ...
分类:
编程语言 时间:
2019-10-07 11:19:57
阅读次数:
78