单链表 1、头插法建表 2、尾插法建表 3、查找第i个节点 4、按值查找 5、计算链表长度 6、插入元素 7、打印链表 链表的删除操作就不说了,和上面的操作差不多,先找第i-1各元素,然后改指针就OK,比较简单。 循环链表,在表的首尾进行操作比较合适。 双向链表,寻找前驱节点比较合适。 操作方式都差 ...
分类:
编程语言 时间:
2019-09-27 19:17:22
阅读次数:
95
线性表是一种简单的数据类型,它是具有相同类型的n个数据元素组成的有限序列。形如如A0,A1,...,An 1。大小为0的表为空表,称Ai后继Ai 1,并称Ai 1前驱Ai。 printList打印出表元素,makeEmpty置空表,find返回某一项首次出现的位置,insert和remove一般是从 ...
分类:
编程语言 时间:
2019-09-27 01:24:54
阅读次数:
101
·1.Binary Tree Preorder Traversal Morris先序遍历,时间复杂度O(n),空间复杂度O(1) 步骤: 1.如果当前节点的左孩子为空,则输出当前节点并将其右孩子作为当前节点。 2.如果当前节点的左孩子不为空,在当前节点的左子树中找到当前节点在中序遍历下的前驱节点。 ...
分类:
其他好文 时间:
2019-09-27 01:23:33
阅读次数:
96
一、什么是循环链表? 双向链表(double linked list)是在单链表的每个结点中,再设置一个指向其前驱结点的指针域。所以在双向链表中的结点都有两个指针域,一个指向直接后继,另一个指向直接前驱。 既然单链表也可以有循环链表,那么双向链表当然也可以是循环表。 线性表的双向链表存储结构如下: ...
分类:
编程语言 时间:
2019-09-22 19:40:26
阅读次数:
71
这次考试题还是蛮好的,只是人很水啊 T1 考场思路: 1.每次询问离线出来,再对于每一个k进行操作,klnk枚举区间,再利用主席树查前驱,期望时间复杂度O(n*log(n)^2)但可以被卡到(n^2*log(n))(对于k极小的询问),如果优化就把k极小的询问预处理?不可实现弃辽 2.分块,不会处理 ...
分类:
其他好文 时间:
2019-09-22 13:17:10
阅读次数:
84
天津地铁出行线路规划项目需求分析与设计思路分析 项目概要 以下是天津地铁线路总图,本项目的受众可以通过本软件,获得天津市地铁出行最便捷,最快速的线路推荐。 需求分析 数据存储结构分析 由于单一的线路表与站点表是无法表示如此复杂的地铁线路情况的。 有多个前驱的站点如:,以及有多个后继的站点如:,这种情 ...
分类:
其他好文 时间:
2019-09-19 00:48:21
阅读次数:
66
定义 对于有向无权无环图,进行拓扑排序 实现方式 Kahn算法 基于DFS的拓扑排序算法 Kahn算法 优化前时间复杂度O($n^{2}$) 排序的过程 1.对于DAG,先输出没有前驱的点 2.把与前驱相关的边删除 3.继续输出没有前驱的点 4.重复前者,直到DAG为空或者没有前驱 如果我们有如下的 ...
分类:
编程语言 时间:
2019-09-16 19:48:35
阅读次数:
93
线索二叉树利用二叉树空余的指针域,来实现二叉树的链式化。然后,就可以通过前驱,后继像双向链表一样根据某种遍历次序对树的结点进行访问。 数据结构: 建立线索二叉树: 不同的遍历顺序,会得到不同的线索二叉树。 一般使第线索链表的头和尾指向NULL(也可以加入一个头指针) 以中序遍历为例:(对左子树处理, ...
分类:
其他好文 时间:
2019-09-15 11:00:53
阅读次数:
207
Remove all elements from a linked list of integers that have value val. Example: 说到删除,首先想到定义两个指针,分别指向要被删除的结点和该结点的前驱结点。这里还需要考虑头结点是需要删除结点的特殊情况。 ...
分类:
其他好文 时间:
2019-08-29 16:19:55
阅读次数:
62
题目:输入一个链表,反转链表后,输出新链表的表头。 A:定义3个结点,pNode作移动指针,pRet作输出指针,pPrev作前驱指针 在pNode没有到达链尾之前,循环里创建pNext指针记录pNode的后继结点 如果pNode为空,代表已经到了链尾,输出结果 其他:pNode的next指向pPre ...
分类:
其他好文 时间:
2019-08-28 22:32:43
阅读次数:
116