#include <stdio.h>#include <stdlib.h>#include <string.h>struct node{ int data; struct node *pNext;};void insertTail(struct node *pH,struct node *new){ ...
分类:
其他好文 时间:
2019-10-05 12:52:42
阅读次数:
100
这个拆边+队列操作实在是太秒了 队列头结点存的是一个存点集的vector,1到这个点集经过的路径权值是一样的,所以向下一层拓展时,先依次走一遍每个点的0边,再走1边。。。以此类推,能保证最后走出来的路径是最优的 ...
分类:
其他好文 时间:
2019-10-05 10:44:36
阅读次数:
73
题意: 输入一个正整数N(<=100000),和一个链表的头结点地址。接着输入N行,每行包括一个结点的地址,结点存放的值(-1e5~1e5),指向下一个结点的地址。地址由五位包含前导零的正整数组成。以头结点地址开始的这条链表以值排序后得到的链表的长度和头结点,接着以升序按行输出每个结点的地址和值以及 ...
分类:
其他好文 时间:
2019-10-03 12:16:42
阅读次数:
64
```C /** * 从表头到表尾逆向创建链表 */ void CreateList(LinkList * L, int n) { *L = (LinkList)malloc(sizeof(LNode)); /* 建立头结点 */ (*L)->next = NULL; LinkList p; for... ...
分类:
其他好文 时间:
2019-10-03 10:32:57
阅读次数:
96
题意:给出头结点,让你判断这颗树是不是二叉搜索树。 思路: 很显然,对于一棵二叉搜索树,其左右子树肯定也是二叉搜索树; 因此,递归思路:如果左右子树都是BST,并且该根结点也符合规律(小于左子树的最小结点,小于右子树的最大结点) 递归边界:如果是空节点,那么返回true; 我在实现的时候偷了一点懒; ...
分类:
其他好文 时间:
2019-10-02 21:05:09
阅读次数:
131
"传送门:[LeetCode] 206. 反转链表" 题目描述 反转一个单链表。 示例 : 输入: 1 2 3 4 5 NULL 输出: 5 4 3 2 1 NULL 进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 链表定义如下: 分析与代码 解法一、迭代 用一个 pre 指针记录 ...
分类:
其他好文 时间:
2019-10-01 18:08:06
阅读次数:
68
void merge(LNode *A,LNode *B,LNode *&C) //此处C指针为引用型 { LNode *p=A->next; LNode *q=B->next; LNode *r; //r是尾指针 C=A; C->next=NULL; r=C; free(B); //释放B的头结点 ...
分类:
编程语言 时间:
2019-09-20 21:11:12
阅读次数:
68
链表的头插法和尾插法 本文的链表均是带头结点的链表。 链表可以说是最简单的链式结构,在C语言中,通常用结构体封装其数据域及指针域作为一个结点。 今天我们说的是链表结点的构造方式以及插入方式。 尾插法 即将节点依次接入链表末尾,称为尾插法 头插法 为什么要把头插法放在尾插法后面来讲呢,头插法顾名思义, ...
分类:
其他好文 时间:
2019-09-12 21:16:35
阅读次数:
113
图论基础 , 最短路 图的简单概念 顶点 (Vertex), 边 (Edge) 有向图 , 无向图 , 无向图是一种特殊的有向图 度 ,有向图分为出度 和 入度,无向图的度,代表 连出去的边 顶点 和 边 都可以具有属性,称为 权重 ,顶点称为 点权,边 称为 边权 稠密图 边很多,大约是 顶点的平 ...
分类:
其他好文 时间:
2019-09-08 14:12:29
阅读次数:
99
检测单链表中是否有环 方法一:蛮力法 定义一个集合用来存放结点的引用,并将其初始化为空,从链表的头结点开始向后遍历,每遍历到一个结点就判断集合中是否有这个结点的引用,如果没有,说明这个结点是第一次访问,还没有形成环,那么将这个结点的引用添加到集合中去。如果在集合中找到了同样的结点,那么说明这个结点已 ...
分类:
其他好文 时间:
2019-09-06 18:39:27
阅读次数:
74