C
文章平均质量分 68
C语言相关内容
ybbgrain
这个人很懒,什么也没有写。。。
展开
-
C语言实现,两有序链表合并
概述leetcode第一题,两有序链表合并。基本思想:每次比较两个链表的数,p1链表小于或等于p2的时候,插入到新的链表newList中去。这样就能实现了,那么如果是两个无序链表呢,比较直接的办法就是先分别排序,但是这样肯定在效率上不行,那么怎么实现呢?题目将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:.原创 2021-10-28 14:53:51 · 1435 阅读 · 0 评论 -
弗洛伊德算法Floyd
全知识整理目录数据结构整理的目录包括了许多的数据结构相关知识。概述Floyd算法是什么?Floyd算法也是动态规划的求最短路径,但不同于Dijkstra算法,Floyd算法可以求权值为负的边,其主要代码的思想是三层for循环,所以时间复杂度为O()。...原创 2021-10-12 11:36:27 · 870 阅读 · 0 评论 -
深度,广度,Prim,Kruskal算法(C语言实现)
全知识整理目录数据结构整理的目录包括了许多的数据结构相关知识。概述代码主要是包含:图的创建 深度优先遍历 广度优先遍历 Prim算法 Kruskal算法算法代码#include <stdio.h>#include <stdlib.h>#include <malloc.h>#include <string.h>#define MAX 100 // 矩阵最大容量.原创 2021-10-11 10:09:38 · 221 阅读 · 0 评论 -
Prim算法
全知识整理目录数据结构整理的目录包括了许多的数据结构相关知识。目录概述算法过程算法代码参考概述Prim算法是什么?Prim算法也是求最小生成树的算法,不同于Kruskal算法,Prim算法相较于在Kruskal算法的直接全局选择最小权值,Prim算法只选择,当前连成结点能够连接到的结点。算法过程可以看见如果第二部,是Dijkstra算法的话就会选择D-F连接,而Pim算法则是选择C-F连接,这就是这两种最小生成树算法的区别。算法代码/* * ..原创 2021-10-11 10:04:39 · 401 阅读 · 0 评论 -
Kruskal算法
全知识整理目录数据结构整理的目录包括了许多的数据结构相关知识。概述Kruskal算法是什么?Kruskal算法是求最小生成树的一种算法,也是一种朴素算法,这种算法就是,在所有的结点当中,每次选择未被连接的权值最小的边。那么最小生成树又是什么呢?连通的,最小权值的图,就称为最小生成树。算法的过程Kruskal算法又称为加边法,就是把最短的边,一条条加起来生成的树。算法代码/* * 克鲁斯卡尔(Kruskal)最小生成树 */void kruskal.原创 2021-10-11 09:54:35 · 601 阅读 · 0 评论 -
图的遍历(深度优先,广度优先)
全知识整理目录数据结构整理的目录包括了许多的数据结构相关知识。目录概述深度优先遍历(过程)深度优先遍历(代码)广度优先遍历(过程)广度优先遍历(代码)概述深度优先遍历和广度优先遍历是什么?怎么遍历?深度优先遍历顾名思义就是,每一次要访问得深,即每一次都要访问到最底层的叶子节点。广度优先遍历,就是每一次,都要以层数为优先,一次就要访问完一层的顶点。深度优先遍历-->先序遍历,广度优先遍历-->层级遍历。深度优先遍历(过程)方法:从某个顶点原创 2021-09-30 16:38:18 · 648 阅读 · 0 评论 -
哈夫曼树与哈夫曼编码
全知识整理目录数据结构整理的目录包括了许多的数据结构相关知识。概述什么是哈夫曼树呢?哈夫曼树,又称为最优二叉树。给定n个权值作为n个叶子节点,构造一颗二叉树,若树的带权路径长度达到最小,则这棵树称为哈夫曼树。简易理解:带权路径长度(WPL)最小的树就是哈夫曼树,WPL=所有叶子节点的权值*路径长度。基本概念路径长度:经过一个结点,路径长度就要+1,下图根节点到c的路径长度为3。权值:每个结点都有一个权值(通常情况下,为了统一哈夫曼树,左边通常是小的权值结点)。WP原创 2021-09-27 18:55:09 · 430 阅读 · 0 评论 -
平衡二叉搜索树
全知识整理目录数据结构整理的目录包括了许多的数据结构相关知识。目录概述旋转的介绍左单旋转右单旋转左右双旋代码逻辑结点的创建左单旋右单旋完整代码概述什么是平衡二叉搜索树?首先需要了解一下什么是二叉搜索树?左子树都小于根节点,右子树都大于根节点,这样的树就是二叉搜索树。平衡二叉搜索树就是,不仅要是二叉搜索树,还要是平衡的。每个节点都有一个平衡因子,平衡因子为-1,0,1(平衡因子 = 右子树的高度-左子树的高度)的就是平衡二叉搜索树。要.原创 2021-09-27 11:37:00 · 494 阅读 · 0 评论 -
线索二叉树详细解释
全知识整理目录数据结构整理的目录包括了许多的数据结构相关知识。概述什么是线索二叉树?为了区分二叉树的左孩子指针,和右孩子指针是否为空,为结点增加了2个域,这两个域分别是Ltag和Rtag。这样的二叉树,就是线索二叉树。需要了解的概念如果结点有左孩子:那么Lchild指向他的左孩子,否则指向遍历序列中他的前驱结点。如果结点有右孩子:那么Rchild依然指向他的左孩子,否则指向遍历序列的后继节点。Ltag=0:表示Lchild指向结点的左孩子。Ltag=1:表示Lc.原创 2021-09-26 14:53:35 · 2240 阅读 · 0 评论 -
C常用函数库
概述为什么要理解C的函数库?因为理解了C的函数库,能够使我们调用函数更方便,加强对C语言的理解。(就是不知道,就是要背,其实是要考。)#include <assert.h>assert函数库,主要是用于检查,例如可以检查malloc分配内存失败后,指针是否为空。 函数原型说明 功能 返回值 assert(p != NULL); malloc分配内存失败的时候返回NULL .原创 2021-09-23 15:52:31 · 338 阅读 · 0 评论 -
快速排序的理解
快速排序有2个要点。找一个关键字。 比关键字元素大的放在一边,比其小的放在另一边。下面举个例子详细解释。但是银行有VIP规则,不同的账户身份可以提前服务。那么怎么执行更高效呢?首先默认选择第一个金卡为关键元素。将金卡用户单独列出,那么这个位置空出来了,就需要人来填,后面找人来填补空位。进行排序,等级低于金卡的在左边,高于金卡的在右边。首先从high指针开始向前扫描,遇见银卡,发现档次低于金卡,那么就放在金卡最开始空出来的位置。如下图:但是银卡的位置(最后一个又空出来了原创 2021-02-08 11:55:21 · 202 阅读 · 1 评论 -
直接插入排序---简单理解---与具体实现
题记:直接插入排序如其名字一样,就是一个一个插入。题目:原始序列:12,65,11,28,56,68,21执行流程:(按从小到大排序)第一趟:12,65,11,28,56,68,21 (12作为基准元素,只有一个元素,即有序,位置不变)第二趟:12,65,11,28,56,68,21 (65>12大所以不变)第三趟:11,12,65,28,56,68,21 (11<65,将11再与12比较,11&l...原创 2020-11-14 23:36:37 · 534 阅读 · 0 评论 -
was not declared in this scope
int main(){ int R[]={12,65,11,28,56,68,21}; int a=sizeof(R)/sizeof(R[0]); InsertSort(R,a); return 1; }int InsertSort(int R[],int n){ } 代码如上,报错如下9 16 D:\C\test.cpp [Error] 'InsertSort' was not declared in this scope是因为自定义函数要写在主...原创 2020-11-14 23:27:25 · 16242 阅读 · 0 评论 -
快速理解------------C语言表达式的计算
C语言表达式的计算如下归纳,希望能帮到大家理解。 任何式子只要含有i++,即便是带有(i++)也不会影响其的运算,i++还是只是代表+1而已。如第一题。 逗号运算不管是带括号是覆盖前面的值,不带括号的是累加。如第二题 关于赋值运算,都是先计算右边的式子,一步一步回到最左边。如第三题 蓝色表示正确答案题目:下面所有变量的定义为:int i=3,j=5,b; float x=2.5; double y=5.0; char a='a';第一题.(X+Y)+i+..原创 2020-10-30 16:31:34 · 1317 阅读 · 0 评论 -
数据结构(C语言版 第2版)课后习题答案 严蔚敏版
数据结构(C语言版 第2版)课后习题答案 严蔚敏 等 编著,仅供参考,还是自己认真做了再看第1章 绪论5.选择题(1)在数据结构中,从逻辑上可以把数据结构分成( C )。A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构(2)与数据元素本身的形式、内容、相对位置、个数无关的是数据的( C )。A.存储结构B.存储实现C.逻辑结构D.运算实现...转载 2020-10-18 10:17:00 · 11728 阅读 · 2 评论 -
关于C语言结构体对齐的问题详细解释
#include <stdio.h>struct date{ int year,month,day;//P12 char week[5];//P5 };int main(){ printf("%d",sizeof(struct date));//P20 return 0;}上题所示,int 4B,char1B,4*3+5*1=17,为什么打印出来的会是20呢原因就是结构体的字节对齐原则原则1:结构内部各个成员的首地址必然是自身大小的整数倍。原则2:s.原创 2020-10-11 20:48:24 · 445 阅读 · 3 评论