上次小编写到双向线性链表了,还有双向循环链表以及数组链表没有写完,只是这两天太忙,就忘了更新,今天全部来补上。1、双向循环链表实现双向循环链表创建、插入、删除、释放内存等简单操作#include <stdio.h> #include <stdlib.h> typedef struct Node { int da ......
385
0
0
2022-07-25
从今天开始,小猿会不定期的推出有关算法的文章。一方面来巩固自己的学习,另一方面也想和广大的读者一起交流,共同学习算法~首先,小猿准备从基础的排序算法开始。生活中,细心的你会发现到处都是被排序过的东西。考试的名次需要按分数排序,站队按身高的高矮排序,电脑上的文档按最后修改过的时间排序····总之,排序是到处可见,无处不在的。下面就举个例子说明一下排序算法中的桶 ......
373
0
0
2022-07-15
一、背景最近为了考研,在学习C语言与数据结构,最开始使用Visual Studio 2019作为编辑器,但是总感觉不习惯;之前一直使用jetbrains公司的编辑器,正好发现C语言可以用CLion,但是发现不会使用他的调试功能,有些时候为了调试代码,还需要将代码复制到 Visual Studio 2019编辑器中;后来觉得太麻烦了,摸索了一段时间终于找到了C ......
392
0
0
2022-07-02
Qt是C++跨平台应用程序开发框架,它支持GUI或非GUI的跨平台应用开发,有着非常完善的开发文档,多种常用的控件,就算没有合适我们使用的控件,我们也可以自己很方便定制自己的控件,总而言之,需要开发跨平台或GUI应用,使用Qt是一个不错的选择。这是一个基本的入门教程,我们搭建的是 VS2013+Qt5.7.0 开发环境。首先到官网下载:qt-opensour ......
418
0
0
2022-06-22
带你一窥生成二进制文件步骤的幕后,以便在出现一些错误时,你知道如何逐步解决问题。C 语言广为人知,深受新老程序员的好评。使用 C 语言编写的源文件代码,使用了标准的英语术语,因而人们可以方便阅读。然而,计算机只能理解二进制代码。为将代码转换为机器语言,你需要使用一种被称为 编译器compiler 的工具。最常见的编译器是 GCC(GNU ......
373
0
0
2022-06-13
求关注最近在做一个小功能,就是微信分享的事情,由于,微信外的浏览器无法呼起微信来分享。只能折中,提示用户在微信中打开来右上角分享,或者 微信扫一下二维码打开网页(大部分用这个)。所以,我们需要一个生成二维码的功能,如果你用百度分享或者bShare等,也提供了微信分享的方式,但是二维码不能配置,比如,加个LOGO什么的。因此,我们选择:自己生成二维码的服务。大 ......
375
0
0
2022-05-20
什么是C++引用c++引用是一个已存在变量的别名。c++引用的意义1.在某些场合c++引用可以替代指针。2.相对指针来说,引用能提高代码可读性。示例1 引用作为函数参数://两数交换,利用指针 void swap1(int *a,int *b) {int temp = *a;*a = *b;*b = temp; } //两数交换,利用引用(引用作为参 ......
541
0
0
2022-05-09
前面我们讲了通俗易懂讲解 选择排序,本文将继续介绍一种排序算法,这次介绍排序算法中的直接插入排序。直接插入排序介绍直接插入排序(Straight Insertion Sort)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表。开始时有序表中只包含1个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,将它插入到有序表中的适当 ......
377
0
0
2022-05-08
最近开始学习go,公司也安排了一些对应的练习题,其中就包括二叉树相关的练习题,刚好也顺便捡起这方面的知识点在计算机数据结构中,我们会经常接触到树这种典型的非线性数据结构,下面图片展示的就是一个标准的树结构在数据结构中,树的定义如下。树(tree)是n(n>=0)个节点的有限集。当n=0时,称为空树。在任意一个非空树中,有如下特点。有且仅有一个特定的称为 ......
380
0
0
2022-05-04
下次当你为控制台输出的格式而苦恼时,请参考这篇文章及其速查表。我写文章主要是为了给自己写文档。我在编程时非常健忘,所以我经常会写下有用的代码片段、特殊的特性,以及我使用的编程语言中的常见错误。这篇文章完全切合我最初的想法,因为它涵盖了从 C++ 控制台格式化打印时的常见用例。像往常一样,这篇文章带有大量的例子。除非另有说明,代码片段中显示的所有类型和类都是& ......
400
0
0
2022-05-02
增强 C 语言程序的弹性和可靠性的五种方法。即使是最好的程序员也无法完全避免错误。这些错误可能会引入安全漏洞、导致程序崩溃或产生意外操作,具体影响要取决于程序的运行逻辑。C 语言有时名声不太好,因为它不像近期的编程语言(比如 Rust)那样具有内存安全性。但是通过额外的代码,一些最常见和严重的 C 语言错误是可以避免的。下文讲解了可能影响应用程序的五个错误以 ......
448
0
0
2022-04-23
千万不要错过的后端【纯干货】面试知识点整理 I Ic++内存管理上次分享整理的面试知识点 I , 今天我们来继续分享面试知识点整理 IIlinux kernel 内核空间、内存管理、进程管理设备、驱动虚拟文件系统(vfs) 内核空间是受保护的,用户不能对内核空间读写,否则会出现段错误 环境变量(env) PATH 命令行参数 char *agrv[] 栈区⬇ ......
350
0
0
2022-04-21
了解有关内存安全和效率的更多信息。C 是一种高级语言,同时具有“接近金属close-to-the-metal”(LCTT 译注:即“接近人类思维方式”的反义词)的特性,这使得它有时看起来更像是一种可移植的汇编语言,而不像 Java 或 Python 这样的兄弟语言。内存管理作为上述特性之一,涵盖了正在执行的程序对内存的安全和高效使用。本文通过 C 语言代码示 ......
361
0
0
2022-04-21
C++面试题语言相关基础题对象复用的了解,零拷贝的了解对象复用指得是设计模式,对象可以采用不同的设计模式达到复用的目的,最常见的就是继承和组合模式了。零拷贝:零拷贝主要的任务就是避免CPU将数据从一块存储拷贝到另外一块存储,主要就是利用各种零拷贝技术,避免让CPU做大量的数据拷贝任务,减少不必要的拷贝,或者让别的组件来做这一类简单的数据传输任务,让CPU解脱 ......
371
0
0
2022-04-21
使用 ncurses 的灵活性和强大功能在 Linux 上创建一个猜数字游戏。在我的 上一篇文章,我简要介绍了使用 ncurses 库通过 C 语言编写文本模式交互式应用程序。使用 ncurses,我们可以控制文本在终端上的显示位置和方式。如果你通过阅读手册页探索 ncurses 库函数,你会发现显示文本有很多不同的方式,包括粗体文本、颜色、闪烁文 ......
372
0
0
2022-04-19