对链表的增删改查简单实现 对上面实现的改进,增加一个虚拟头结点,方便了增删改查的实现 ...
分类:
其他好文 时间:
2018-05-12 13:48:29
阅读次数:
153
实验一 动态链表的设计与应用 1.随机产生或键盘输入一组元素,建立一个带头结点的单向链表(无序)。 2.遍历单向链表。 3.把单向链表中元素逆置(不允许申请新的结点空间)。 4.在单向链表中删除所有的偶数元素结点。 5.编写在非递减有序链表中插入一个元素使链表元素仍有序的函数,并利用该函数建立一个非 ...
分类:
其他好文 时间:
2018-05-07 15:31:08
阅读次数:
267
求整棵树的xxx,假设以将个结点为头,它的xxx是什么,把它的可能的信息收集起来,就得到所有结点为头的xxx结果,那么答案肯定在其中。 给定一棵二叉树的头节点head, 请返回最大搜索二叉子树的大小 本题目中,以每个结点为头结点,它的最大搜索二叉树是什么,那么需要的信息 如以某个结点X为例,它的二叉 ...
分类:
其他好文 时间:
2018-05-04 17:10:37
阅读次数:
159
链表概念的引入 创建无序链表,依次输入各节点数据,以-1结束。循环读入数据,若数据不为-1,就申请一个新节点,将数据赋给新节点,在链表尾部加上该节点。加节点的时候,要分情况,(1)首节点(2)中间节点*(3)尾节点 输出链表,函数通过头结点传参,这里要注意尽量使用const修饰,避免函数修改节点数据 ...
分类:
其他好文 时间:
2018-04-29 22:13:39
阅读次数:
193
stack 使用栈 需要节点(Node) 原理 --每一个待压入的节点都是待压入的新元素与当前栈顶节点构成的一个节点, 也就是说每一个节点都保存着上一个节点的信息 特性 --先进后出 -- 原理 使用当前栈的新元素与head.next 构建一个 Node, 然后使头结点的next 总之 一个新结点保 ...
分类:
其他好文 时间:
2018-04-26 21:15:32
阅读次数:
120
题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。 画个图吧,假设存在单链表A->B->C->D->E 如果不想任何指针,该如何如何定义之类的,那么翻转过程可以搞成如下: 然后我们假设有三颗指针。分别为: 这时候我们重新定义上面的执行过程,那么有: 仔细观察上图,就知道如 ...
分类:
其他好文 时间:
2018-04-26 16:58:28
阅读次数:
127
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 一种方法是先计算链表的长度N,然后定位到第(N-n)个节点,删除节点(N-n+1)也即(倒数第n个节点) 代码如下: 第二种方法是,使用两个指针,首先将第一个指针置于第二个的后n+1个节点处。再同时移动两个指针,当第一个指向 ...
分类:
其他好文 时间:
2018-04-26 01:05:44
阅读次数:
244
将单链表中终端结点的指针端由空指针改为指向头结点,就使整个单链表形成一个环,这种头尾相接的链表称为单循环链表,简称循环链表。 CircleLinkList.h main.c 运行结果: ...
分类:
其他好文 时间:
2018-04-25 22:13:43
阅读次数:
192
数据结构之链式表 === 理解 以链式的形式构造顺序线性表 采取指针将不同地址的结点相连接,地址没有联系 查找、删除、插入都需要从头结点向后循环,时间复杂度都为O(n) 不存在过度占用空间的情况,需要一个申请一个,不用时,返还。 代码(差一个链式表初始化) ...
分类:
其他好文 时间:
2018-04-21 17:30:42
阅读次数:
145
AQS源码阅读笔记 先看下这个类张非常重要的一个静态内部类Node。如下: 接着,我们再来看看AQS中的字段: 其中, node和tail分别表示头结点和尾节点,这两个字段是用来的保证同步队列原子入(出)队操作(具体后续在分析具体的实现类中说)。 state在此处可以简单理解为加锁的次数(每次加锁, ...
分类:
其他好文 时间:
2018-04-12 23:32:06
阅读次数:
203