
数据结构
苍白的咏叹调
寻找一朵相似的花。。。
展开
-
判断一棵二叉树是否为平衡二叉树
1.先给出树节点信息typedef struct tree{ struct tree *lchild; struct tree *rchlid; int data;}tree,* Bitree;2.原理判断一棵树是否为平衡二叉树,要满足每个节点的左右子树的高度之差的绝对值不大于1。因此,我们这里可以比较每个节点的左右字数高度,判断他们差的绝对值是否满足平衡二叉树的条...原创 2018-03-29 10:15:36 · 1023 阅读 · 1 评论 -
C语言结构体指针的使用方法
1.首先定义一个结构体,给它取别名:typedef struct node{struct node * next;//指向下一节点int data;//数据域}pnode,*linklist;;//别名与指针名2.定义结构体指针与指针变量,给出几种不同的定义方式struct node *a,b;pnode *c,d;linklist p;他们别名的关系如下:...原创 2018-05-09 10:08:46 · 13475 阅读 · 3 评论 -
LeetCode上求两个排序数组中位数问题—— Median of Two Sorted Arrays
1.题目There are two sorted arrays nums1 and nums2 of size m and n respectively.Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).Example 1:nums1 = [1, 3]n...原创 2018-06-21 17:20:40 · 252 阅读 · 0 评论 -
C语言结构体的存储分配
1.简介若结构体里面包含多种数据类型,其如何在内存中分配存储空间呢?编译器在处理结构体空间分配时,采取的是对齐方式,按照结构体中成员中成员类型字节数最大的为标准,从上往下对结构体成员进行赋值,若当前成员的字节数小于最大成员字节数,接着为下一个连续分配内存,若下一个的内存分配后会大于最大成员字节数,则为当前成员补齐至最大成员字节数。2.具体解析#include<stdio.h...原创 2018-08-22 10:32:55 · 2509 阅读 · 0 评论 -
求二叉树最长路径长度和
1.题目:求任意一颗二叉树最长路径长度样例:如下所示图一树的最长路径长度为4,图二的最长路径长度为7,图一最长路径经过根节点,顶点为1,图二不经过,顶点为32.思路树中任意两个节点之间,连接起来的路径最长。方法就是求出每个节点的左子树和右子树的高度,两者相加就是当前节点的最长路径,然后比较每个节点的最长路径,最大的就是结果3.实现方法定义一个静态变量MaxL...原创 2019-08-09 09:51:39 · 8394 阅读 · 0 评论 -
求1~n的全排列组合
1.题目:给定一个数字n,求它的全排列如n=3,则它的全排列组合方式有如下所示:1 2 31 3 22 1 32 3 13 1 23 2 12.思路:通过深度优先搜索来做,用一个数组来标记当前位置,一个数组来记录当前位置所代表的的值,只要未标记就加入排列数组中,当数组中元素达到n时,输出这个排列,并取消对应位置的标记3.代码如下所示:public class...原创 2019-08-21 15:57:43 · 4530 阅读 · 0 评论 -
Java实现有向图的拓扑排序
1.拓扑排序对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边<u,v>∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序列2.实现方法利用二维数组保存有向图,重复边过滤,有边的话map...原创 2019-09-09 21:02:50 · 764 阅读 · 0 评论