随笔分类 -  基础编程

数据结构,文件IO,网络编程,进程线程等的示例代码.
摘要:一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,也可以执行操作系统的命令。 1.示例代码 add. 阅读全文
posted @ 2023-03-09 15:45 this毛豆 阅读(85) 评论(0) 推荐(0)
摘要:在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件,这里我们是指shell脚本基础编程。 1.概述 我们通过cat /etc/shells可以查看系统中存在的shell程序: $ cat /etc/shells# /etc/shells: valid login s 阅读全文
posted @ 2023-03-07 15:10 this毛豆 阅读(60) 评论(0) 推荐(0)
摘要:Rust是一门系统编程语言,专注于安全,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。Rust在语法上和C++类似,但是设计者想要在保证性能的同时提供更好的内存安全。 1.下载安装 官网:https://www.rust-lang.org Windows版本下载(先安装Visua 阅读全文
posted @ 2022-10-17 17:51 this毛豆 阅读(134) 评论(0) 推荐(0)
摘要:在计算机科学中,折半搜索(英语:half-interval search),也称二分搜索(英语:binary search)、对数搜索(英语:logarithmic search),是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程 阅读全文
posted @ 2022-06-25 18:05 this毛豆 阅读(247) 评论(0) 推荐(0)
摘要:顺序查找是按照序列原有顺序对数组进行遍历比较查询的基本查找算法。对于任意一个序列以及一个给定的元素,将给定元素与序列中元素依次比较,直到找出与给定关键字相同的元素,或者将序列中的元素与其都比较完为止。 1 /** 2 * C data structure sequence search exampl 阅读全文
posted @ 2022-06-25 18:00 this毛豆 阅读(166) 评论(0) 推荐(0)
摘要:希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因 D.L.Shell 于 1959 年提出而得名。希尔排序是把记录按下标的一定增量分组,对每组 阅读全文
posted @ 2022-06-25 17:56 this毛豆 阅读(45) 评论(0) 推荐(0)
摘要:折半插入排序(binary insertion sort)是对插入排序算法的一种改进,由于排序算法过程中,就是不断的依次将元素插入前面已排好序的序列中。由于前半部分为已排好序的数列,这样我们不用按顺序依次寻找插入点,可以采用折半查找的方法来加快寻找插入点的速度。 1 /** 2 * C data s 阅读全文
posted @ 2022-06-25 17:53 this毛豆 阅读(110) 评论(0) 推荐(0)
摘要:快速排序(Quicksort),是对冒泡排序算法的一种改进。算法通过多次比较和交换来实现排序,其排序流程如下: (1)首先设定一个分界值,通过该分界值将数组分成左右两部分。(2)将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于分界值,而右边部分中 阅读全文
posted @ 2022-06-25 17:45 this毛豆 阅读(83) 评论(0) 推荐(0)
摘要:冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小 阅读全文
posted @ 2022-06-25 17:35 this毛豆 阅读(39) 评论(0) 推荐(0)
摘要:顺序排序思想:从左到右依次排序数组,依次拿当前元素和其后的所有元素作比较,根据设定做升序或降序排序。 1 /** 2 * C data structure sequence sort example. 3 * 4 * License - MIT. 5 */ 6 7 #include <stdio.h 阅读全文
posted @ 2022-06-25 17:29 this毛豆 阅读(103) 评论(0) 推荐(0)
摘要:二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。二叉树特点是每个节点最多只能有两棵子树,且有左右之分。 binary-tree.c 1 /* 阅读全文
posted @ 2022-06-25 16:05 this毛豆 阅读(51) 评论(0) 推荐(0)
摘要:顺序队列是队列的顺序存储结构,顺序队列实际上是运算受限的顺序表。和顺序表一样,顺序队列用一个向量空间来存放当前队列中的元素。由于队列的队头和队尾的位置是变化的,设置两个指针front和rear分别指示队头元素和队尾元素在向量空间中的位置,它们的初值在队列初始化时均应设置为0。 sequence-qu 阅读全文
posted @ 2022-06-25 15:45 this毛豆 阅读(59) 评论(0) 推荐(0)
摘要:链式栈是一种数据存储结构,可以通过单链表的方式来实现,使用链式栈的优点在于它能够克服用数组实现的顺序栈空间利用率不高的特点,但是需要为每个栈元素分配额外的指针空间用来存放指针域。 linked-stack.c 1 /** 2 * C data structure linked stack examp 阅读全文
posted @ 2022-06-25 15:24 this毛豆 阅读(48) 评论(0) 推荐(0)
摘要:顺序栈是栈的顺序实现。顺序栈是指利用顺序存储结构实现的栈。采用地址连续的存储空间(数组)依次存储栈中数据元素,由于入栈和出栈运算都是在栈顶进行,而栈底位置是固定不变的,可以将栈底位置设置在数组空间的起始处;栈顶位置是随入栈和出栈操作而变化的,故需用一个整型变量top来记录当前栈顶元素在数组中的位置。 阅读全文
posted @ 2022-06-25 15:17 this毛豆 阅读(179) 评论(0) 推荐(0)
摘要:这里的内核链表指Linux中实现的一种特殊的双向链表,区别于传统的双向链表包含数据,内核链表结构本身不包含数据,类比于卡车和货物,内核链表是卡车,数据是货物,两者之间联系通过container_of()函数进行映射,内核链表作为一个独立的成员包含在包含数据的结构体中,对数据的操作都是操作结构体中的内 阅读全文
posted @ 2022-06-25 15:02 this毛豆 阅读(171) 评论(0) 推荐(0)
摘要:双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。 代码如下: double-list.c 1 /** 2 * C data structure d 阅读全文
posted @ 2022-06-25 14:25 this毛豆 阅读(65) 评论(0) 推荐(0)
摘要:单项链表 单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始;链表是使用指针进行构造的列表;又称为结点列表,因为链表是由一个个结点组装起来的;其中每个结点都有指针成员变量指向列表中的下一个结点;链表是由结点构成,head指针指向第一个成为表头结点,而 阅读全文
posted @ 2021-09-05 15:46 this毛豆 阅读(108) 评论(0) 推荐(0)
摘要:顺序表 顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系,采用顺序存储结构的线性表通常称为顺序表 阅读全文
posted @ 2021-09-02 23:18 this毛豆 阅读(221) 评论(0) 推荐(0)