数据结构
文章平均质量分 61
Cy_7927
渣渣一枚
展开
-
拓扑排序(Topological Sorting)
什么是拓扑排序转自:https://blog.csdn.net/lisonglisonglisong/article/details/45543451在图论中,拓扑排序(Topological Sorting)是一个有向无环图(DAG, Directed Acyclic Graph)的所有顶点的线性序列。且该序列必须满足下面两个条件:每个顶点出现且只出现一次。若存在一条从顶点 A 到顶点 B 的路...转载 2018-06-09 14:22:21 · 226 阅读 · 0 评论 -
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) ...原创 2018-06-10 21:57:06 · 932 阅读 · 0 评论 -
输入一个链表,反转链表后,输出链表的所有元素。
输入一个链表,反转链表后,输出链表的所有元素。class Solution {public: ListNode* ReverseList(ListNode* pHead) { ListNode* next = NULL; ListNode* pre = NULL; if(!pHead) return NULL; while(...原创 2018-06-10 16:08:53 · 430 阅读 · 0 评论 -
输入一个链表,输出该链表中倒数第k个结点。
输入一个链表,输出该链表中倒数第k个结点。class Solution {public: ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { ListNode* p;ListNode* q; p = q = pListHead; int i = 0; ...原创 2018-06-10 15:39:16 · 431 阅读 · 0 评论 -
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。链接:https://www.nowcoder.com/questionTerminal/8ee967e43c2c4ec193b040ea7fbb10b8来源:牛客网public class Solution { //从n的2进制形式的最右边开始判断是不是1 /* * 该解法如果输入时负数会陷入死循环, ...转载 2018-06-10 08:41:32 · 2627 阅读 · 1 评论 -
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。解析思路:来自牛客网递归解:说明: 1)这里的f(n) 代表的是n个台阶有一次1,2,...n阶的 跳法数。2)n = 1时,只有1种跳法,f(1) = 13) n = 2时,会有两个跳得方式,一次1阶或者2阶,这回归到了问题(1) ,f(2) = f(2-1) + f(2-2) 4) n...原创 2018-06-10 03:07:11 · 14460 阅读 · 2 评论 -
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
比较倾向于找规律的解法,f(1) = 1, f(2) = 2, f(3) = 3, f(4) = 5, 可以总结出f(n) = f(n-1) + f(n-2)的规律,但是为什么会出现这样的规律呢?假设现在6个台阶,我们可以从第5跳一步到6,这样的话有多少种方案跳到5就有多少种方案跳到6,另外我们也可以从4跳两步跳到6,跳到4有多少种方案的话,就有多少种方案跳到6,其他的不能从3跳到6什么的啦,所...转载 2018-06-10 02:28:51 · 678 阅读 · 1 评论 -
以斐波那契数列为例分析递归算法的时间复杂度和空间复杂度
以斐波那契数列为例分析递归算法的时间复杂度和空间复杂度原文:https://blog.csdn.net/superwangxinrui/article/details/79626870首先来波概念: 递归算法的时间复杂度:递归的总次数*每次递归的数量。 递归算法的空间复杂度:递归的深度*每次递归创建变量的个数。 那什么是斐波那契额数列呢?对于菲波那切数列有典型的生兔子的的问题,在这我就不...转载 2018-06-10 02:07:18 · 6952 阅读 · 0 评论 -
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。#include "stdlib.h" #include "stdio.h" #include "string.h...原创 2018-06-10 01:09:44 · 324 阅读 · 0 评论 -
两个栈实现队列-c语言
#include "stdlib.h" #include "stdio.h" #include "string.h" /*此代码只体现思路*/ /********************************************************************两个栈实现队列******************************/typedef...原创 2018-06-10 00:38:47 · 400 阅读 · 0 评论 -
栈的链表方式实现-c语言
#include "stdlib.h"#include "stdio.h"#include "string.h"typedef unsigned char BOOL;#define TRUE 1#define FALSE 0 typedef struct _stackNode{ int dat; struct _stackNode* Pre;}stackNode;...原创 2018-06-09 23:51:27 · 207 阅读 · 0 评论 -
栈的数组方式实现-c语言
#include "stdafx.h"#include "stdlib.h"#include "stdio.h"#include "string.h"/*此代码并未考虑边界和错误处理,只体现思路*/typedef unsigned char BOOL;#define TRUE 1#define FALSE 0 typedef struct _stack{ int* sta...原创 2018-06-09 23:07:28 · 346 阅读 · 0 评论 -
已知前序中序 求后序-c代码实现
#include "stdlib.h"#include "stdio.h"#include "string.h"/*此代码并未考虑边界和错误处理,只体现思路*/void GetRear(char* pre, char* mid){ char left[10]; char right[10]; char pre_left[10]; char pre_right[10] ;...原创 2018-06-09 22:10:42 · 1730 阅读 · 2 评论 -
aud_protocol.c
#include "aud_manage.h"#include "crc_8.h"#include "aud_config.h"/*桢字段接受处理*/static BOOL protocol_receive_frame(E_PROTOCOL_TYPE* pp_type, struct t_aud_frame* pp_aud_frame, u8 vp_c, BOOL* pp_excfram...原创 2019-01-17 18:24:19 · 196 阅读 · 0 评论