1、双向循环链表 双向链表是在单链表的每个结点中,再设置一个纸箱其前驱结点的指针域。双向链表可以有效的提高算法的时间性能,用空间换取时间。 typedef struct Node { ElemType data; struct Node* prior; //直接前驱指针 struct Node* n ...
分类:
其他好文 时间:
2020-02-20 20:14:01
阅读次数:
62
快慢指针: 定义两个指针,一个快,一个慢,可以有多种用途。例如:快速找到位置长度单链表中的中间结点;对于循环链表中利用快慢指针也可以判断是否存在环。 快速找到位置长度单链表中的中间结点 1)使用一个指针,先索引一遍获取总长度,再取长度一半去循环获取到中间值;O(3L/2)。 2)使用两个指针,快指针 ...
分类:
其他好文 时间:
2020-02-20 17:15:31
阅读次数:
65
链表一般分为两种:1)单链表 2)双链表,二者是及其相似的,但双链表有两个指针 1.单链表: //数组模拟链表(快) #include <iostream> #include <cstdio> #include <cstring> #include <string.h> #include <math ...
分类:
其他好文 时间:
2020-02-17 16:04:37
阅读次数:
81
我们之前有两篇文章写了回文串和回文序列相关的问题。 寻找 回文串的核心思想是从中心向两端扩展: 这道题的关键在于,单链表无法倒着遍历,无法使用双指针技巧。那么最简单的办法就是,把原始链表反转存入一条新的链表,然后比较这两条链表是否相同。关于如何反转链表,可以参见前文「递归操作链表」。 其实, 借助二 ...
分类:
其他好文 时间:
2020-02-17 12:20:53
阅读次数:
64
因为每次给layui数据表格绑定数据或者类似操作的时候 总要重新做一遍 而且忘记很多东西 所以干脆写博客把相关东西记录下来 便于查阅和修正 以下是一个完整的数据表格i项目的增删改查案例 先来看后台 LayuiContext db = new LayuiContext(); Result res = ...
有一种存储英文单词的方法,是把单词的所有字母串在一个单链表上。为了节省一点空间,如果有两个单词有同样的后缀,就让它们共享这个后缀。下图给出了单词“loading”和“being”的存储形式。本题要求你找出两个链表的公共后缀。 函数接口定义: PtrToNode Suffix( List L1, Li ...
分类:
其他好文 时间:
2020-02-13 11:17:51
阅读次数:
269
//单链表 //头指针 //1.头指针是指向链表的第一个节点的指针,若链表有头节点 //则是指向头节点的指针 //2.头指针具有标识作用,所以常用头指针冠以链表的名字 //3.无论链表是否为空,头指针均不为空,头指针是链表的必要元素 //头节点 /* *头节点是为了操作的统一和方便而设立的,放在第一 ...
分类:
其他好文 时间:
2020-02-11 00:27:21
阅读次数:
79
单链表,弄清楚可stl中list的区别 ListNode的结构 struct ListNode { int val; //当前结点的值 ListNode *next; //指向下一个结点的指针 ListNode(int x) : val(x), next(NULL) {} //初始化当前结点值为x, ...
分类:
编程语言 时间:
2020-02-10 17:58:40
阅读次数:
159
一、介绍 emsp; 我们定义一个新链表然后,将两个链表的元素依次比较,放入比较最小的放到新链表前面。 二、代码 ...
分类:
其他好文 时间:
2020-02-10 09:45:20
阅读次数:
50
一 前言 之前知识知识追寻者写了一篇单链表的实现,感觉不是很满意,写的逻辑不够清晰,有些地方实现的不过好,不能连成一个整体,伪单链表;为此研究了一会双向链表的简单实现;本篇的实现方式是以方法的形式展现,读者可以将其整合为一个类; 二 双向链表简介 双向链表的定义是,一个节点有两个方向,分别储存当前节 ...
分类:
编程语言 时间:
2020-02-10 00:16:05
阅读次数:
88