
c
文章平均质量分 87
c语言写的算法
舔甜歌姬的EGUMI LEGACY
你好,你想度過怎樣的一段人生?
因爲興趣,所以喜歡。
展开
-
【vscode】vscode+mingw64+第三方库的安装与使用(c_cpp_properties,launch、tasks) zmq开源c库的使用
vscode安装c、c++插件2.安装mingw,并设置环境变量(我安装的是win64版)安装好后,打开cmd或者powershell查看一下库和路径gcc -v -x c -E - (看c)或者 gcc -v -E -x c++ -(看c++)可以看到下面这些都是安装后的路径 D:/learning/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include D:/learning/mingw64/bin/../lib/gcc/x86原创 2022-01-29 02:32:24 · 9677 阅读 · 1 评论 -
【数据结构X.11】代码实现 哈夫曼树的创建,建立,构造,实现哈夫曼编码
哈夫曼树的各种语言java,python,c++代码实现哈夫曼树的创建,建立,构造,实现哈夫曼编码,实现思路和要点:抓住哈夫曼树的性质,每轮选出2个权值最小的点进行构造树。抓住哈夫曼编码的性质,从根出发,向左标0,向右标1.哈夫曼树的构造思路:已知某系统在通信联络中只可能出现8种字符,其概率分别为0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11 试着设计赫夫曼编码。假设权w=(5,29,7,8,14,23,3,11),n=8,则m=15,按照上述算法构造一颗哈夫曼树原创 2020-12-13 02:00:51 · 2086 阅读 · 0 评论 -
【数据结构X.10】平衡二叉树的创建,RR旋转,LL旋转,RL旋转,LR旋转,插入、平衡二叉树删除节点和查找插入路径上,距离插入节点最近的平衡因子绝对值大于1的节点,二叉平衡树的高度和平衡因子计算
平衡二叉树的创建,RR旋转,LL旋转,RL旋转,LR旋转,插入、删除和一些其他操作。平衡二叉树只是一种特殊的二叉排序树,其左右子树的高度差小于1。左旋、右旋、左旋后右旋、右旋后左旋的理解:实际就是通过左右旋转,使得平衡树始终保持平衡。平衡树神奇的一点就在于,即使整棵树乱七八糟的,只要找到距离插入节点最近的平衡因子为2的祖先节点,然后围绕它进行旋转即可。部分平衡了,这样的平衡就可以维持到整棵树。那么如何从插入节点开始向上查找,找到失衡节点呢?如何判断是哪一种类型的旋转。二叉树的删除过程的理解。原创 2020-12-10 23:17:41 · 412 阅读 · 0 评论 -
【数据结构X.9】二叉排序树(BST)的插入、查找(非递归),递归算法、中序遍历二叉排序树,输出有序树,层序遍历BST树、创建一颗二叉排序树、二叉排序树的删除
代码实现:二叉排序树(BST)的插入、查找(非递归),递归算法、中序遍历二叉排序树,输出有序树,层序遍历BST树、创建一颗二叉排序树、二叉排序树的删除等等。概念:没什么好说的,二叉排序树(BST)就是一个中序遍历有序的树,如图中的红色的区域左边整体小于右边,以77为根,明显绿色区域小于黄色区域,所以进行插入时,遇到了比它的根节点大的,就放在左边,比它的根节点小的就放在右边,然后递归,如果遇到了合适的空位,也就是tr==NULL这时候就是插入的时候,难点:二叉排序树最难的地方在于其删除操作,当是需原创 2020-12-09 01:31:04 · 999 阅读 · 0 评论 -
【数据结构X.8】代码实现和算法解析 已知一颗树的层次序列及每个节点的度, 编写算法构造这个树的孩子兄弟链表
问题:已知一颗树的层次序列及每个节点的度, 编写算法构造这个树的孩子兄弟链表分析:由于层次遍历的顺序可以根据节点的度去充分地遍历每一个节点的兄弟,所以可以每次都把每一层节点的兄弟关系先链接好,并且由于父子关系只能查找一次,所以按照层序序列经过节点时,需要把其孩子节点链接上。所以按照层序次序遍历节点时,链接上孩子节点,并且链接上该节点的全部兄弟节点。int length = 9;int levelOrder[length] = {3, 2, 1, 5, 4, 6, 8, 7, 9};int de原创 2020-12-06 23:03:48 · 1735 阅读 · 0 评论 -
【数据结构X.7】树的前序遍历建立左孩子右兄弟,孩子链表,求孩子兄弟表示法存储的森林的叶子节点数目,以孩子兄弟链表为存储结构,求解树的深度,已知一颗树的层次序列及每个节点的度, 构造这个树的孩子兄弟
树算法习题1.树的前序遍历建立树,访问顺序相当于二叉树的中序遍历2.求孩子兄弟表示法存储的森林的叶子节点数目3. 前序访问树节点4.递归方法求孩子兄弟表示法存储的森林的叶子节点数目5.建立孩子链表6.访问孩子链表表示法的节点,打印7.孩子链表为存储结构,设计递归算法求解树的深度8.以孩子兄弟链表为存储结构,求解树的深度9.已知一颗树的层次序列及每个节点的度, 编写算法构造这个树的孩子兄弟链表原创 2020-12-06 22:47:21 · 1967 阅读 · 0 评论 -
【数据结构X.6】代码实现:左孩子右兄弟表示法转换为树的双亲表示法,左孩子右兄弟表示法转化为树的孩子兄弟链表表示法,树的双亲表示法转化为左孩子右兄弟的二叉树表示法
前文提要:【数据结构X.5】树、森林的双亲表示法,左孩子右兄弟表示法,创建树的左孩子右兄弟二叉树以及二叉树到树的双亲表示法的转换思路和算法本文主题:可执行代码和代码示例在最后。【左孩子右兄弟】表示法转换为树的【双亲表示法】【左孩子右兄弟】表示法转化为树的【孩子兄弟】链表表示法树的【双亲表示法】转化为【左孩子右兄弟】的二叉树表示法其他的例如【孩子兄弟】链表表示法转【左孩子右兄弟】的二叉树表示法,【孩子兄弟】链表表示法转【双亲表示法】,都是类似的原理,不再赘述了。正文:1.【左孩子右兄弟】原创 2020-12-05 22:39:59 · 3766 阅读 · 0 评论 -
【数据结构X.5】代码实现 树和森林的双亲表示法,左孩子右兄弟表示法,创建树的左孩子右兄弟二叉树以及二叉树到树的双亲表示法的转换思路和算法
树的双亲表示法、树的左孩子右兄弟表示法、孩子表示法1. 树和森林的双亲表示法,2. 树的左孩子右兄弟表示法3. 创建树的左孩子右兄弟二叉树4. 二叉树到树的双亲表示法的转换思路和算法原创 2020-12-05 03:23:22 · 2887 阅读 · 0 评论 -
【数据结构X.3】先序遍历序列第k节点值,删去以x为根的子树,最近的公共祖先节点,非空二叉树的宽度,求解后序序列,叶子节点按从左到右的顺序连成一个单链表,递归非递归
二叉树算法习题: 1.设计算法,求解先序遍历序列第k(1<=k<=n)个节点的值 2.对于树中每个元素为x的节点,删去以它为根的子树,释放相应的空间 3. p和q分别为指向二叉树中的任意两个节点的值,其中数值不会重复,找到离p和q最近的公共祖先节点 4.求非空二叉树b的宽度:具有节点数目最多的那一层的节点个数 5.假设一颗满二叉树,所有节点都不同,已知先序序列是pre,设计算法求解后序序列post6.1.非递归,设计算法将二叉树的叶子节点按从左到右的顺序连成一个单链表,表头指针为head,二叉树原创 2020-12-03 00:48:23 · 698 阅读 · 0 评论 -
【数据结构X.2】二叉树基础算法层次遍历,求解二叉树的高度,先序和中序建立二叉树链表,判定二叉树是否是完全二叉树,交换全部左右子树
二叉树算法习题:1.二叉树自下而上,自左到右的层次遍历算法2.非递归算法求解二叉树的高度3.递归算法求解二叉树的高度4.二叉树各个值不同,先序和中序遍历序列分别存于数组A[1..n],B[1....n]中, 算法建立该二叉树链表5.二叉树用二叉链表形式存储,写一个判定二叉树是否是完全二叉树的算法, `思路:层次遍历,遇到空节点,检查队列是否有节点`6.二叉树采用二叉链表存储,尝试设计一个算法, 计算一颗给定二叉树的所有双分支节点数7.把二叉树中,所有节点的左右子树交换原创 2020-12-02 20:24:22 · 417 阅读 · 0 评论 -
【数据结构X.1】代码实现 二叉树的前序遍历,中序遍历,后序遍历和层次遍历
二叉树的前序遍历,中序遍历,后序遍历和层次遍历难点:二叉树的主要难点在于理解其递归性质。从根开始,左右孩子分别又是其左右孩子的根,子子孙孙无穷尽也,如果能理解二叉树内部的相似性,那么剩下的实现就不难了。后序遍历的非递归算法:借助栈和一个记录上次访问的根节点的指针,可以实现后序遍历的非递归算法。后序遍历的顺序为:左子,右子,根;所以,后序遍历算法首先访问的必然是某棵子树的尽量靠左下的节点(虽然不一定是左子节点!例如图1);原创 2020-12-02 12:40:49 · 335 阅读 · 0 评论 -
【计算机系统】微妙的 i++和++i——底层实现,原理和应用for循环,i赋值
微妙的 i++和++i——底层实现,原理和应用for循环,i赋值区别:i++ 返回的值是新建的一个临时的tmp值,保存的是i增加前的值,实际的i值已经被改变了,任何类似*(i++)的操作都会报错,因为i++创建的这个临时值,很快(快到你刚刚获取到i的值)就会被内存删掉,取地址将会导致非法内存引用。++i 返回 的值是i本身取地址后增加的值,所以会比i++返回的值大1。int i = 0;int *p1 = &(++i); //正确int *p2 = &(i++); //错误原创 2020-11-10 21:08:31 · 1689 阅读 · 0 评论 -
【c语言】指针的速记 指针的作用 函数指针,指针数组,二维数组指针……
[1] c语言指针[2]《深入理解计算机系统》大黑书[3] C语言字符串指针(指向字符串的指针)详解前言:一切都是地址计算机所有的数据都必须放在内存中才能运行,这涉及到代码数据的链接和加载。编译和链接过程的一项重要任务就是找到这些名称所对应的地址。实际上,计算机无法分别内存中到底是数据还是代码。当数据被加载到内存内存中后,代码就变成了程序(从静态变成了动态),操作系统会给不同的内存块指定...原创 2020-04-25 01:03:56 · 529 阅读 · 0 评论 -
【今日头条测试开发笔试】部分题目总结
选择题单选和多选,都不太难,两个我觉得容易出错,平时记忆不太深的有:1.TCP连接中,客户端向服务器端发送FIN后,服务器端进入状态:A.CLOSE_WAITB.LAST_ACKC.TIME_WAITD.SYN_RCVD应该选A2.c++中初始化数组为0,下面哪些正确:A.int sum[100]={0};B.int sum[100] memset(sum,0,siz...原创 2020-04-14 09:34:37 · 859 阅读 · 0 评论 -
【KMP字符串匹配算法】自留用学习
这个算法经常忘记,今天看了记录一下心得,自留用。讲得比较好的:字符串匹配算法KMP详细解释——深入理解讲的比较详细的:字符串匹配KMP算法的理解(详细)简洁易懂版本:转载一篇单字符串匹配KMP算法最好理解的文章思路:一般都先讲暴力匹配,这种情况下,每次都从字符串开头开始匹配,当子串长M,父串长N,复杂度是O(M*N)匹配串的时候,例如:ABCDABD,每次都从头开始匹配,每次都要...原创 2020-04-13 19:14:33 · 1084 阅读 · 0 评论 -
数据结构线性表-顺序表:两个有序顺序表合并为一个新的有序顺序表,并返回结果
数据结构题-顺序表:将俩有序顺序表合并为一个新的有序顺序表,并返回结果输入:3 31 2 3 4 5 6输出1 2 3 4 5 6输入:3 33 3 4 4 5 5输出:3 4 5思路:简单比较两个数组大小,由于有序,1.如果结果数组当前存储和a数组或者b数组当前存储重复,就跳过, 2.如果没有重复,就把小的那个存入。注意:注意相等情况的处理,不要遗漏c...原创 2020-03-16 17:48:19 · 4932 阅读 · 0 评论 -
2020春季美团笔试题1 双行道
题目双行道时间限制:C/C++语言 1000MS;其他语言 3000MS内存限制:C/C++语言 65536KB;其他语言 589824KB题目描述:有一个2*n的网格,有一个人位于(1,1)的位置,即左上角,他希望从左上角走到右下角,即(2,n)的位置。在每一次,他可以进行三种操作中的一种:1. 向右走一格,即从(x,y)到(x,y+1);2. 向上右方走一格,即,如果他在(2,y...原创 2020-03-14 21:33:56 · 1778 阅读 · 0 评论 -
数据结构与算法--图型结构的建立与搜索
**课程名称:数据结构与算法 课程类型:必修 实验项目:图型结构的建立与搜索 实验题目:图的存储结构的建立与搜索 实验日期:2017/12/3**一、实验目的图的搜索(遍历)算法是图型结构相关算法的基础,本实验要求编写程序演示无向图三种典型存储结构的建立和搜索(遍历)过程。让我们在这个过程中熟悉这些操作之间的关系和内在联系。二、实验要求及实验环境1.分别实现无向...原创 2018-03-05 16:44:18 · 1149 阅读 · 0 评论 -
c语言网络编程(1)ocket之Winsock API
原文地址:https://www.cnblogs.com/hitWTJ/p/9886700.html我搬家到博客园了。。。参考网址:https://blog.youkuaiyun.com/Datura_Metel/article/details/79900395https://www.2cto.com/kf/201804/736240.htmlhttps://blog.youkuaiyun.com/m0_379...原创 2018-11-06 13:09:19 · 898 阅读 · 0 评论 -
用codeblocks连接MySQL数据库,运行报错:undefined reference to 'mysql_init@4' error: ld returned 1 exit status
转载地址:https://zhidao.baidu.com/question/920083739945748619.html由于安装的MySQL版本(64位)跟这里Codeblocks(32位)的可能不兼容,include 还有lib引用都不要使用安装MySQL里的,用专门的mysql-connector-c-noinstall-6.0.2-win32.zip这个压缩包里的,这个可以自行...原创 2019-04-04 10:25:07 · 2688 阅读 · 0 评论 -
c语言文法定义
<程序>→<外部声明>|<程序><外部声明><外部声明>→<函数定义>|<声明><函数定义>→<类型说明><声明><复合语句><类型说明>→void|char|int|float<声明>→<指针直接说明符>|<直接说明...转载 2019-04-20 19:00:31 · 6323 阅读 · 0 评论 -
【自码留存】简易c语言LL(1)文法
https://www.cnblogs.com/www924121851/p/6135760.html〈程序〉::〈声明〉|〈函数〉〈声明〉::(A|〈声明〉’)〈函数声明〉A::〈头文件〉|〈宏定义〉〈声明〉’::〈声明〉|null〈头文件〉::〈头文件〉〈头文件〉’〈头文件〉’::〈头文件〉|null〈宏定义〉::#define B〈宏定义〉|nullB::〈字符串 〉C...转载 2019-05-05 21:52:45 · 1317 阅读 · 0 评论 -
mysql8源码编译安装centos+camke
参考网址:怎样从Mysql官网下载mysql.tar.gz版本的安装包>查看系统的版本和内核版本mysql源码编译安装优点:可以定制安装缺点:安装时间长软件名如:mysql-5.5.32.tar.gz一、创建用户以root身份登录sudo su创建账户组:groupadd mysql创建账号;useradd -s /sbin/nologin -g mysql...原创 2019-07-05 16:19:38 · 1331 阅读 · 0 评论 -
腾讯2019技术岗笔试 消消乐 小Q有n个数字,每次小Q 选择任意两个不相同数字,并同时删去他们,最后问你能不能删完。
第一题:消消乐时间限制2s,其他语言:4s小Q有n个数字,每次小Q 选择任意两个不相同数字,并同时删去他们,最后问你能不能删完。输入描述:第一行数字T,表示数据组数,对于每组数据,第一行一个数字,表示数字个数,N一定是偶数,接下来一行N个数AI,表示这些数字,满足2<=N<=1000000,1<=Ai<=N.输出描述:对于每一组数据,输出Yes或者No表示是否...原创 2019-09-02 13:51:52 · 1146 阅读 · 2 评论 -
腾讯2019技术岗笔试 花匠小Q 花匠小Q养了两种花,一种白花,一种红花,现在小Q用这些花进行摆放,摆放的时候连续的白花的数量只能是K的倍数(倍数可以是0),不然就会枯萎。现在给出a和b,小Q想知道长
花匠小Q养了两种花,一种白花,一种红花,现在小Q用这些花进行摆放,摆放的时候连续的白花的数量只能是K的倍数(倍数可以是0),不然就会枯萎。现在给出a和b,小Q想知道长度为[a,b]的摆花方案中有多少种。分析:1.设当前长度为X,X属于[a,b]之间。2.当X<K,只能全是红花,一种3.当X=K,只能全是白花或者全是红花。4.当X>K,需要分情况,1.白花为0 * k朵,...原创 2019-09-05 18:50:25 · 946 阅读 · 0 评论 -
腾讯2019技术岗笔试 猜硬币 众所周知,每一枚硬币都有两面,假定投掷一枚硬币,得到正面和反面的概率是一样的。小Q有一天和好朋友在玩投掷硬币的游戏,他投了n枚硬币,已知至少有p正,q反,求n枚硬币
众所周知,每一枚硬币都有两面,假定投掷一枚硬币,得到正面和反面的概率是一样的。小Q有一天和好朋友在玩投掷硬币的游戏,他投了n枚硬币,已知至少有p正,q反,求n枚硬币正面向上的期望是多少。分析:1.根据样例,分数取模的公式为:其中4是期望的分子,3是期望的分母 printf("%d\n",(4%1000000007+1000000007)/3);原理:https://www.c...原创 2019-09-06 16:14:02 · 1796 阅读 · 2 评论 -
腾讯2019技术岗笔试 小Q非常喜欢复读,有时候,小Q会得到某个字符串S。这时他会把s不断重复不断重复连成一个无限长的串。比如说,小Q现在得到一个串abc,他会直一复读, 那么形成的字符串就是:
小Q非常喜欢复读,有时候,小Q会得到某个字符串S。这时他会把s不断重复不断重复连成一个无限长的串。比如说,小Q现在得到一个串abc,他会直一复读, 那么形成的字符串就是:abcabcabcabcabcabcabc...同时发送消息的字长是有限制的。如果要发送的串超过了长度限制,那么就只会发送这个串的一个前缀。比如说对于上述无限长的字符串,若长度限制是13,那么实际发出去的字符串是abcabc...原创 2019-09-06 17:22:34 · 999 阅读 · 0 评论 -
2019腾讯技术岗笔试 小Q的矩形 小Q有n个矩形,这n个矩形有各自的颜色C,他把这些矩形先后放在平面直角坐标系上,现在他想要找到最大的一个矩形
小Q有n个矩形,这n个矩形有各自的颜色C,他把这些矩形先后放在平面直角坐标系上,现在他想要找到最大的一个矩形,矩形中的每个部分都有颜色,且颜色相同。一片区域的颜色为最后覆盖它的矩形决定。给你每个矩形一条对角线上两个顶点的坐标(X,Y 1)和(X2,Y2),你能帮助小Q找出最大的矩形吗?分析这个题目有点难,思路 :用一个二维数组表示这个图,然后颜色就是数组的值,后面的矩形颜色覆盖前面的矩形颜...原创 2019-09-06 18:36:37 · 703 阅读 · 0 评论 -
2019华为笔试 找终点
■题目描述给定一个正整数数组,最大为100个成员,从第一个成员开始,走到数组最后一个成员最少的步骤数,第一步必须从第一元素开始,1<=步长<len/2, 第二步开始以所在成员的数字走相应的步数,如果目标不可达返回-1,只输出最少的步骤数量这个题我理解错了,以为每一步都可以走 0<x<步长数字,写的代码通过率40%,哎,我好菜啊。。#include <std...原创 2019-09-07 22:57:38 · 5873 阅读 · 5 评论 -
2019腾讯第三次笔试 第一题柠檬的选择
这次笔试说明我最好在学校再学学,学好了再去上班,不然去了就是辣鸡。。。第一题柠檬的选择小Q的面前有两排柠檬,我们称两排柠檬分别为A,B。A排有n个柠檬,B排有M个柠檬。这里思路:n<=2的时候,列举即可。n>=3的时候首先最大的会可能被拿走,那就是第二大的作为最大咯。所以我们得出A的最大,次大,次小,最小。B的最大,最小。根据一些逻辑推导。我们把上面的4个A里的数字...原创 2019-09-27 17:24:23 · 595 阅读 · 0 评论 -
2019腾讯第三次笔试 小Q取名字
小Q在做一个给人取名字的程序,有n个名字,每个名字是一个字符串,陆续有m个人找你取名字,每个人有一个要求,(str1,str2),他的名字要以str1为前缀,不能以str2为前缀,你要在所有满足条件的名字里选出字典序最小的给他,没有就输出-1;思路:得到所有名字,对名字进行排序。得到str1的长度,调用函数strncmp(str1,names[j],str1_len)直接比较前n个字符...原创 2019-09-27 17:24:10 · 465 阅读 · 0 评论 -
【数据结构】哈工大实验一:一元多项式(代碼以及報告)
代碼見最後的附錄。一、 实验目的写一个代码计算一元多项式 以链表存储一元多项式,在此基础上完成对多项式的代数操作。 1.能够输入多项式(可以按各项的任意输入顺序,建立按指数降幂排列的多项式)和输出多项式(按指数降幂排列),以文件形式输入和输出,并显示。 2.能够计算多项式在某一点x=x0的值,其中x0是一个浮点型常量,返回结果为浮点数。 3.能够给出计算两个多项式加法、减法、乘...原创 2018-03-05 00:56:59 · 1881 阅读 · 1 评论