设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。 在链表类中实现 ...
分类:
其他好文 时间:
2019-11-09 17:51:58
阅读次数:
75
LinkedList——底层是双链表结构 addFirst——添加到开头 addLast——添加到末尾 getFirst——获取开头元素 getLast——获取末尾元素 removeFirst——删除开头元素 removeLast——删除末尾元素 这些方法可以模拟栈与队列的结构 ...
分类:
其他好文 时间:
2019-11-07 23:49:45
阅读次数:
107
第一次接触算法,只是照着自己的方法学习的,总结写的可能不是会很好,但我会努力改进。 #STL容器包括顺序式容器和关联式容器。 顺序式容器: ·vector:动态数组,从末尾能快速插入与删除,直接访问任何元素。 ·list:双链表,从任何地方快速插入与删除。 ·deque:双向队列,从前面或后面快速插 ...
分类:
编程语言 时间:
2019-11-07 20:46:02
阅读次数:
120
https://www.acwing.com/problem/content/829/ ...
1 #include <stdio.h> 2 #include <stdlib.h> 3 typedef struct line{ 4 struct line * prior; 5 int data; 6 struct line * next; 7 }line; 8 //双链表的创建 9 line*... ...
分类:
其他好文 时间:
2019-11-03 20:14:04
阅读次数:
76
探索vue源码之缓存篇 一、从链表说起 首先我们来看一下链表的定义: 链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer) 其中的双向链表是我们今天的主角: 双向链表也叫双链表。双向链表中不仅有 ...
分类:
其他好文 时间:
2019-10-30 10:27:59
阅读次数:
94
问题描述 分别实现两个函数,一个可以删除单链表中倒数第K个节点,另一个可以删除双链表中倒数第K个节点。 问题分析与解决 从问题当中,我们只能得到一个链表和要删除的第K个节点的信息,于是就有以下思路:如果链表为空或者K<0时,直接返回;如若不然,遍历链表的每个节点,每经过一个节点K减1。比如对于1 - ...
分类:
其他好文 时间:
2019-10-20 12:35:04
阅读次数:
64
自己动手撸一个LinkedList 1. 原理 LinkedList是基于双链表的动态数组,数据添加删除效率高,只需要改变指针指向即可,但是访问数据的平均效率低,需要对链表进行遍历。因此,LinkedList善于进行一些插入、删除操作,不利于进行检索操作。LinkedList和ArrayList这两 ...
分类:
其他好文 时间:
2019-10-17 20:31:31
阅读次数:
90
1.链表介绍 链表是一种物理单元上非连续,非顺序的存储结构。链表由一系列的姐点组成,结点可以在运行时动态生成。每个结点包含两个部分,一个是存储数据元素的数据域,一个是存储下一个结点的指针域 双链表是链表的一种,每个结点既有前驱指针,也有后驱指针 2.LinkList 源码分析1)构造方法public ...
分类:
其他好文 时间:
2019-10-13 13:22:24
阅读次数:
77
集合框架有两个最高级接口 分别为collectio和map collection的子类 有 list set 其中实现 list 的实现类有 arraylist vector linkedlist, arraylist 适用于单线程 线程不安全 查找数据快,增删改数据慢,vector 适用于多线程 ...
分类:
其他好文 时间:
2019-10-02 10:44:57
阅读次数:
110