带头结点的双循环链表 L 为空表的条件是:L->next==L && L->prior==L 在单链表中设置头结点的作用是主要是使插入和删除等操作统一,在第一个元素之前插入元素和删除第一个结点不必另作判断。另外,不论链表是否为空,链表指针不变。在单链表 p 结点之后插入s 结点的操作是 s->nex ...
分类:
其他好文 时间:
2020-07-19 23:13:51
阅读次数:
56
同步框架AbstractQueuedSynchronizer Java并发编程核心在于java.concurrent.util包 而juc当中的大多数同步器实现都是围绕着共同的基础行为,比如等待队列、条件队列、独占获取、共享获取等,而这个行为的抽象就是基于AbstractQueuedSynchron ...
分类:
其他好文 时间:
2020-07-18 19:45:38
阅读次数:
71
Condition condition.await() > aqs.await():1、先addConditionWaiter(),把当前节点加入到Condition队列中(等待队列),waitStatus=-2,这个入队的流程和AQS有些类似,但是这里没有空的头结点,入队的线程节点自身就是头结点, ...
分类:
其他好文 时间:
2020-07-12 20:27:20
阅读次数:
67
链表 链表是以节点的方式存储 每个节点包含data域,next域,next域指向下一个节点 链表分为:带头结点、不带头节点,根据实际需求确定 客户端 LinkedList<string> list = new LinkedList<string>(); list.Add("fan"); list.A ...
分类:
编程语言 时间:
2020-07-12 00:30:11
阅读次数:
71
双链表一个节点里面有两个指针,一个指向左边,一个指向右边 不定义头结点和尾结点了 令下标是0的点表示head 令下标是1的点表示tail 邻接表的知识:把每个点的所有邻边全部存下来 邻接表就是n个单链表 head[i]存储第i个点的邻边 1 #include <bits/stdc++.h> 2 us ...
分类:
其他好文 时间:
2020-07-11 19:14:03
阅读次数:
46
题目链接 https://leetcode-cn.com/problems/merge-two-sorted-lists/description/ 题目分析 两个链表已排序 新链表应该是两个链表拼接起来的,而非new出来的 链表中头结点的val应该是有意义的 题解一:迭代 思路 先new一个无意义的 ...
分类:
其他好文 时间:
2020-07-11 19:10:40
阅读次数:
83
数组模拟单链表,图论的基础 单链表用的最多的是邻接表,邻接表是n个单链表,邻接表是树和图的存储方式 单链表 >> 邻接表 >> 存储树和图 单链表开始时是head指向空节点 插入元素后长这样 每个节点存储两个值 值:val 指针:next 然后用数组模拟就需要定义几个数组 e[N]:存储每个节点的v ...
分类:
其他好文 时间:
2020-07-11 17:43:21
阅读次数:
62
剑指offer版本 创建一个结点 链接两个结点(链表) 打印某个结点的值 打印pHead之后的链表 销毁pHead之后的链表 // // 《剑指Offer——名企面试官精讲典型编程题》代码 // 作者:何海涛 // // 面试题6:从尾到头打印链表 // 题目:输入一个链表的头结点,从尾到头反过来打 ...
分类:
编程语言 时间:
2020-07-10 14:52:39
阅读次数:
58
1. 设计一个递归算法,删除不带头结点的单链表L中所有值为x的结点。 2.在带头结点的单链表L中,删除所有值为x的结点,并释放其空间,假设值为x的结点不唯一,试编写算法以实现上述操作。 3. 设I为带头结点的单链表,编写算法实现从尾到头反向输出每个结点的值。 4.试编写在带头结点的单链表L中删除一个 ...
分类:
其他好文 时间:
2020-07-10 10:13:31
阅读次数:
71
今天是小学期的最后一天,我终于完成了小学期的第个程序题,并且借用今天的程序代码使我懂得了更多关于链表的知识,今日的问题是关于约瑟夫问题的求解,我的代码如下:#include<iostream>using namespace std;typedef struct node{ int data; str ...
分类:
其他好文 时间:
2020-07-09 22:36:41
阅读次数:
77