1 # 实现单链表 2 class Node(object): 3 '''定义一个节点''' 4 def __init__(self,data): 5 # 因为每次都需要生成一个节点,写到类里面便于保存 6 self.data = data 7 # 保存节点的值 8 self.next = None ...
分类:
其他好文 时间:
2020-04-14 01:04:04
阅读次数:
51
2-1若已知一队列用单向链表表示,该单向链表的当前状态(含3个对象)是:1->2->3,其中x->y表示x的下一节点是y。此时,如果将对象4入队,然后队列头的对象出队,则单向链表的状态是: 2->3->4 2-7若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用哪种存储 ...
分类:
其他好文 时间:
2020-04-13 23:15:50
阅读次数:
327
聊表反转实现思路: 1)不要试图在原来链表试图修剪,比较容易掉坑,避免链表断裂 2)新建一个表头rverseHeader,只要用来反转前后节点地址指向,也是新链表头 3)新建临时节点,curNode移到当前节点,nexNode移到下一节点防止链表断裂 4)从旧链表往下查找,断开当然节点,并设置cur ...
分类:
其他好文 时间:
2020-04-13 09:11:25
阅读次数:
58
内容小结: 1.书上2.3了解到线性表的类型定义,注意类型定义的规范写法; 2.书上2.4、2.5了解到线性表的两种存储结构,即顺序存储(顺序表)和链式存储(链表),进而学习了相关的初始化、插入、删除等操作及其各操作空间、时间复杂度是如何得出的。其中链表又分为单链表、循环链表等,要注意不同链表基本操 ...
分类:
其他好文 时间:
2020-04-12 20:12:04
阅读次数:
61
109. 有序链表转换二叉搜索树 给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定的有序链表: [-10, -3, 0, 5, 9], 一个可能的答案是:[0, -3, ...
分类:
其他好文 时间:
2020-04-12 18:46:44
阅读次数:
59
问题描述: 有一个包含int型节点值的单链表,给定一个链表中的节点node,但不给定整个链表的头结点,删除链表中的某个结点。 算法实现: class Node { public int value; public Node next; public Node(int value) { this.va ...
分类:
其他好文 时间:
2020-04-11 22:14:12
阅读次数:
111
第二章主要围绕线性表进行学习。线性表有两种存储结构:顺序存储结构和链式存储结构。其中,顺序表的特点之一是地址连续;链式表分为单链表,循环链表和双向链表。在使用链式表的时候,要考虑是否要带有尾指针的结构。线性表的一些基本操作如:创建线性表、查找、插入、删除、排序、比较等等。在写代码的时候,通常要考虑时 ...
分类:
其他好文 时间:
2020-04-11 00:01:01
阅读次数:
67
给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转。例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4;如果 K 为 4,则输出应该为 4→3→2→1→5→6,即最后不到 K 个元素不反转。 输入格式: 每个输入包含 1 个测试用例 ...
分类:
其他好文 时间:
2020-04-10 00:49:21
阅读次数:
58
单向循环链表: 单链表的一个变形是单向循环链表,链表中最后一个节点的next域不再为None,而是指向链表的头节点。 操作: is_empty() 判断链表是否为空 length() 返回链表的长度 travel() 遍历 add(item) 在头部添加一个节点 append(item) 在尾部添加 ...
分类:
其他好文 时间:
2020-04-09 12:45:25
阅读次数:
92
链表 链表是一个以节点存储的有序列表,每个节点包括data域和next域,data域是用来保存值的,next域是保存下一个节点的地址,根据有无头节点,链表可分为带头节点的链表和不带头节点的链表 单链表 不带头节点的单链表 带头节点的单链表 双链表 分析为什么要双链表 1. 单链表每个节点只保存了后继 ...
分类:
其他好文 时间:
2020-04-09 00:30:20
阅读次数:
61