面试题 02.01. 移除重复节点 编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。 示例: 输入:[1, 2, 3, 3, 2, 1] 输出:[1, 2, 3] 输入:[1, 1, 1, 1, 2] 输出:[1, 2] 分析: ? 链表结点移除的本质就是 将被删除结点的前驱结点连向后继 ...
分类:
其他好文 时间:
2020-06-27 11:35:16
阅读次数:
48
图的概述 什么是图 如图就是一张图,其实之前介绍的树、链表都可以看做一个简单的图。 图描述的是一种多对多的关系,由**顶点(vertex)和连接顶点间的边(edge)**组成。每个顶点可以有零个或多个前驱、也可以有零个或多个后继。 注:图可以没有边,但至少有一个顶点。 因此图可以表示成G=(V,E) ...
分类:
其他好文 时间:
2020-06-24 23:40:49
阅读次数:
56
集合分为线性集合和非线性集合。 线性集合:元素具有唯一的前驱和后驱的数据结构类型。 1、直接存储:该类型的集合数据元素可以直接通过下标index来访问(Array(数组、List<T>),string,struct)。 优点:向数据结构中添加元素很高效,直接放在数据末尾的第一个空位上就可以了。 缺点 ...
原文:https://www.cnblogs.com/wanmeishenghuo/p/9655599.html 参考狄泰软件相关教程 由上图可以看出来,插入和遍历的时间复杂度是不一样的。 这样不管游标在哪一个位置上,都可以通过后继或者前驱指针任意访问。 双向链表的继承层次: 单链表和双向链表应该是 ...
分类:
其他好文 时间:
2020-06-19 12:20:40
阅读次数:
66
####线性表:零个或多个数据元素的有限序列。 举个例子:小学生排队,有一个打头,一个收尾。当中的每一个知道他前面一个是谁,后面一个是谁。 关于线性表,这里强调几个地方,帮助大家理解线性表。 ######第一,他是一个序列,也就是说,元素之间是有顺序的。若元素存在多个,则第一个元素无前驱,最后一个元 ...
分类:
其他好文 时间:
2020-06-14 14:59:17
阅读次数:
55
1. 定义 线性表:零个或者多个数据元素的有限序列 它是一个序列,元素之间是有顺序的 a1,a2,ai-1,ai,ai+1...an i=1,有且仅有一个直接后继元素 i=[2,n]有且仅有一个直接前驱元素 当n=0,为空表 有限性,事实上,计算机处理的元素都是有限的,无限数列只存在数学概念中 举例 ...
分类:
其他好文 时间:
2020-06-11 13:38:53
阅读次数:
60
一、线性表 线性表的特征: 第一个元素没有前驱,这个元素称为头节点 最后一个数据元素没有后继,成为尾节点 除了第一个和最后一个元素外,其他元素有且仅有一个前驱后后驱。 线性表分类: 顺序存储 链式存储 1.1顺序表 1.1.1顺序表的实现 ...
分类:
其他好文 时间:
2020-06-08 23:37:55
阅读次数:
51
本系列文章将于2021年整理出版,书名《算法竞赛专题解析》。 前驱教材是:《算法竞赛入门到进阶》(京东 当当 ) 清华大学出版社。 如有建议,请联系:(1)QQ 群,567554289;(2)作者QQ,15512356 1、引子 提到状态压缩DP时,常常用Hamilton问题作为引子。 最短Hami ...
分类:
编程语言 时间:
2020-05-30 00:59:33
阅读次数:
77
循环链表 将单链表的形式稍作改变,不让最后一个结点的指针为NULL,而让它指向头一个结点,这样就得到了循环链表。 它的优点是:从循环链表中任一结点出发,都能访问遍所有结点。 双链表 优点:既可以方便的找前驱,也可以找后继。 双向链表 双向链表中,每个结点有两个指针域,一个指向直接后继元素结点,另一个 ...
分类:
其他好文 时间:
2020-05-28 21:36:55
阅读次数:
65
一、链表的概念: 链表将每个对象存放在独立的节点中,每个节点还存放着序列中下一个节点的引用。在Java中,所有链表实际上都是双向链接的——即每个节点还存放着指向前驱节点的引用。 双向链表结构如下所示: 二、链表的特点: 获取数据慢,需要遍历查找;插入和删除快,只需要修改前后的链接。 三、单链表的实现 ...
分类:
编程语言 时间:
2020-05-26 19:52:53
阅读次数:
52