【题目描述】 给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。 请你返回该链表所表示数字的 十进制值 。 示例 1: 输入:head = [1,0,1]输出:5解释:二进制数 (101) 转化为十进制数 (5) 示例 2: 输入:h ...
分类:
其他好文 时间:
2020-07-02 16:03:21
阅读次数:
56
问题描述 : 假设2个稀疏一元多项式分别由带头结点的有序单链表A和B存储(指数项递增有序)。现要求设计一个算法,实现稀疏一元多项式的加减法计算。要求使用A和B的原存储空间(运算后B不再存在,A链表中保存结果多项式)。输入中的单链表的长度不得在计算算法中利用,仅作为建表使用。 注意:加/减法计算后,如 ...
分类:
其他好文 时间:
2020-07-01 21:58:20
阅读次数:
62
转自——作者:奋力向上的猪——树、森林和二叉树的转换——清晰的一塌糊涂。 1、树转换为二叉树 (1)加线。在所有兄弟结点之间加一条连线。 (2)去线。树中的每个结点,只保留它与第一个孩子结点的连线,删除它与其它孩子结点之间的连线。 (3)层次调整。以树的根节点为轴心,将整棵树顺时针旋转一定角度,使之 ...
分类:
其他好文 时间:
2020-07-01 12:50:41
阅读次数:
75
链表的逆置 带头结点 void InvertList(LinkList &L) { Lnode *p = L->next; if (p == NULL) return; Lnode *q = p->next; while (q != NULL ) { p->next = q->next; q->ne ...
分类:
其他好文 时间:
2020-06-30 22:46:23
阅读次数:
61
最短路径——Dijkstra算法 BFS算法的局限性 Dijkstra算法 第一轮:循环遍历所有结点,找到还没确定最短路径,且dist最小的顶点vi,令final[i]=true; 检查所有邻接自vi的顶点,若其final值为false,则更新dist和path的信息 第二轮:循环遍历所有结点,找到 ...
分类:
编程语言 时间:
2020-06-30 14:43:38
阅读次数:
73
本博客总结学习堆排序算法,以一个数组为例,采用大根堆进行升序排序,附有代码实现。 堆排序的思想 堆排序的逻辑是建立在完全二叉树的基础上。 有两个概念必须要了解: 大根堆:每个结点值都大于等于左右孩子结点值 小根堆:每个结点值都小于等于左右孩子结点值 以大根堆为例,将根结点与最后一个结点交换,弹出根结 ...
分类:
编程语言 时间:
2020-06-30 13:03:10
阅读次数:
63
非递归解法 递归解法比较简单,是考察概念,放在文章末尾来说。 用递归方法能解决的问题都能用非递归方法来实现,因为递归方法无非就是用函数栈来保存信息,如果用自己申请的数据结构来代替函数栈,也可以实现一样的功能 步骤: 1.申请一个栈,将头节点head压入栈中 2.从stack中弹出结点,记为temp, ...
分类:
其他好文 时间:
2020-06-30 00:41:42
阅读次数:
57
数论 矩阵树定理 0.1 简介 矩阵树定理是一个受限很窄的定理,基本上题目中有任何其它的限制条件,矩阵树就不是正解(#`-_ゝ-) 但是..但是..人家逼格高啊ˋ( ° ▽、° ) 1.1 基尔霍夫矩阵 (一) 对于图上的$n$个结点,矩阵大小为$n\times n$ (二) 对称线$(i,i)$上 ...
分类:
其他好文 时间:
2020-06-29 23:10:24
阅读次数:
83
数论 哈夫曼树 1.0 引子 A: 欸,你听说过“带权最优二叉树”嘛?就是“带权路径长度最短的二叉树“嘛?就是“路径上的分支个数称为路径长度”嘛?就是“叶子结点都有一定的权值”嘛? B: 说人话 A: 《合并果子》.. 1.1 二叉哈夫曼算法 也许算法并不叫这个名字,只是我觉得好记好懂就这么叫了.. ...
分类:
其他好文 时间:
2020-06-29 22:37:44
阅读次数:
47
list实现, 头插带头结点的单链表实现链栈,两个队列实现栈 MAX_SIZE = 100 class MyStack1(object): """模拟栈""" def __init__(self): self.items = [] self.size = 0 def is_empty(self): ...
分类:
编程语言 时间:
2020-06-29 20:07:08
阅读次数:
65