
C语言
文章平均质量分 69
会掉发的程序员
打工人
展开
-
排序算法②——选择排序&&堆排序
排序算法②——选择排序&&堆排序选择排序基本思想直接选择排序参考代码直接选择排序的特性总结堆排序选择排序基本思想 选择排序的思想非常的简单,就是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完 。直接选择排序 在元素集合a[i]–a[n-1]中选择关键码最大(小)的数据元素若它不是这组元素中的最后一个(第一个)元素,则将它与这组元素中的最后一个(第一个)元素交换在剩余的a[i]–a[n-2](a[i+1]–a[n-原创 2022-02-07 20:13:20 · 581 阅读 · 21 评论 -
排序算法①——插入排序&&希尔排序
排序算法①——插入排序&&希尔排序直接插入排序基本思想参考代码直接插入排序特性总结希尔排序基本思想参考代码直接插入排序基本思想 对于单趟排序:把待排序的值插入到已经排好序的序列中。待排序的值逐一与序列中的值比较,直到找到自己的位置。全趟排序:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 。举一个单趟排序的例子2 4 8 9 10 假设我们需要将5插入到上面的升序序列中:1、首先5与10进行比较,原创 2022-01-27 20:28:06 · 2674 阅读 · 29 评论 -
C语言--二叉树
二叉树树的概念及结构树的概念树的相关概念树的表示二叉树的概念及结构二叉树的顺序结构及实现树的概念及结构树的概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一颗倒挂的树,也就是说它是根朝上,而叶朝下的。有一个特殊的结点,称为根结点,根节点是没有前驱结点的除根节点外,其余结点被分成N(N>0)个互不相交的集合,其中每一个集合又是一棵结构与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有0个或多个后继。因此,树是递归原创 2021-12-08 18:50:13 · 7052 阅读 · 36 评论 -
C语言--栈和队列
栈和队列栈栈的概念及结构栈的实现(数组实现)队列队列的概念及结构队列的实现(链表实现)栈栈的概念及结构栈一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。栈的实现(数组实现)栈的实现一般可以使用数组或者链表实现,相对而言数组原创 2021-11-20 17:10:54 · 660 阅读 · 22 评论 -
C语言链表
C语言链表链表的概念及结构概念结构链表的分类链表的实现双向链表的实现总结:链表和顺序表的区别链表的概念及结构概念链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。结构代码struct Slist{ int* a; struct Slist* next;};逻辑结构:物理结构:链表的分类链表的实现双向链表的实现总结:链表和顺序表的区别...原创 2021-11-07 19:43:39 · 15773 阅读 · 23 评论 -
C语言顺序表
C语言顺序表概念及结构静态顺序表动态顺序表接口实现(动态)顺序表的优缺点优点缺点概念及结构顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表一般可以分为:静态顺序表:使用定长数组存储元素。动态顺序表:使用动态开辟的数组存储。静态顺序表代码实现#define N 10 //这表示顺序表最多存储的数据typedef int Datatype;typedef struct SeqList{ D原创 2021-10-31 19:33:12 · 1880 阅读 · 14 评论 -
C语言文件操作!!
C语言文件操作为什么使用文件什么是文件1.程序文件2.数据文件3.文件名文件的打开和关闭1.文件指针2.文件的打开和关闭文件的顺序读写文件的随机读写文本文件和二进制文件文件读取结束的判定为什么使用文件当我们运行程序时,我们想把我们运行程序时把写入的数据永久保存起来,而不是等程序结束后就被销毁只有我们自己将数据删除时,数据才将不复存在这就涉及到了数据持久化的问题,我们一般把数据持久化的方法有,把数据存放在磁盘文件、存放到数据库等方式。使用文件我们可以将数据直接存放在电脑的磁盘上,做到了数据原创 2021-10-23 11:35:07 · 1681 阅读 · 24 评论 -
实现简易通讯录(动态增长版)
简易版通讯录通讯录的基本功能通讯录存储的个人信息通讯录菜单初始化通讯录增加好友信息删除好友信息查找好友修改指定好友信息打印全部好友信息附上所有代码test.c文件contact.h文件contact.c文件通讯录的基本功能1. 首先是我们写的通讯录至少可以容纳1000人的信息。2.里面容纳的信息包括姓名,性别,年龄,电话号码,家庭住址3.该通讯录还需要有一些基本功能,比如,增加好友信息,删除好友信息,查询好友信息,修改好友信息,打印好友信息,对列表进行排序。通讯录存储的个人信息#defi原创 2021-10-04 11:13:26 · 1870 阅读 · 22 评论 -
带你了解柔性数组!!!!!
柔性数组什么是柔性数组柔性数组的特点使用柔性数组柔性数组的好处第一个优势第二个优势什么是柔性数组可能你从来没有听说过柔性数组这个概念,但是它确实是存在的。在C99标准中,结构中的最后一个元素允许是未知大小的数组,这就叫做柔性数组成员例如struct st_type{ int i; int a[];//柔性数组成员};也可以写成struct st_type{ int i; int a[0];//柔性数组成员};上面两种形式都是正确的,但是在不同的编译器中可能只能原创 2021-10-02 21:51:38 · 413 阅读 · 17 评论 -
常用的字符串函数详解
字符串函数strlen()介绍作用举例使用strlen()函数模拟实现strlen()函数strcpy()介绍作用举例使用strcpy()函数模拟实现strcpy()函数strcpy()函数注意事项strncpy()函数介绍举例使用strncpy()函数strcat()介绍作用举例使用strcat()函数模拟实现strcat()函数strcat()函数注意事项strncat()函数介绍举例使用strncat()函数strcmp()介绍作用举例使用strcmp()函数strncmp()函数strstr()介绍原创 2021-09-19 21:17:54 · 12786 阅读 · 22 评论 -
动手模拟strcpy()函数
模拟strcpy函数strcpy函数模型strcpy函数的作用和用法函数说明函数参数函数用法实例手动写strcpy函数strcpy注意事项strcpy函数模型char * strcpy( char * strDestination, const char * strSource );函数头文件:string.hstrcpy函数的作用和用法函数说明strcpy函数将strSource(包括终止null字符)复制到由strDestination指定的位置复制或追加字符串时不执行溢出检原创 2021-09-07 16:19:37 · 591 阅读 · 19 评论 -
什么是递归,带你了解递归!!
递归函数什么是递归?递归的两个必要条件练习①接收一个整形值(无符号),按顺序打印它的每一位。例如:输入: 1234, 输出: 1 2 3 4②编写函数不允许创建临时变量,求字符串长度。递归与迭代练习①求n的阶乘(不考虑溢出)②斐波那契什么时候用递归?什么是递归?程序调用自身的编程技巧称为递归(recursion)递归作为一种算法在程序设计语言中广泛运用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求原创 2021-08-10 19:46:08 · 9359 阅读 · 9 评论 -
自己动手写一个strlen()函数
strlen()函数:strlen所作的是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符’\0’为止,然后返回计数器值(长度不包含’\0’)。那么我们就来尝试一下自己动手写一个strlen函数。方法一:#include <stdio.h>#include <assert.h>int my_strlen(const char* s){ char* p = s; assert(p原创 2021-08-02 17:21:35 · 1761 阅读 · 0 评论 -
qsort()函数详解
qsort函数详解qsort函数原型qsort函数的作用及用法qsort函数的参数qsort函数实例qsort排序一个整型数组qsort排序一个结构体用冒泡排序模拟一个qsort函数qsort函数原型void qsort( void * base, size_t num, size_t width, int (__cdecl * compare )(const void * elem1, const void * elem2 ) );qsort函数的作用及用法qsort()函数的功能是原创 2021-09-01 19:37:27 · 601 阅读 · 15 评论