- 博客(22)
- 收藏
- 关注
原创 数据结构———栈的基本实现
栈是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端为栈顶,另一端为栈底。栈中元素遵循先进后出的原则假设我们依次将1, 2, 3, 4压入栈中废话不多说,来,上代码!2.stack.cpp代码如下(示例):3.test.cpp总结栈是一种后进先出的数据结构,由于作者水平和经验不多,目前直到的具体应用场景为二叉树的遍历和图的深度优先遍历方面,随着以后学习的深入,我会进一步补充和修改这方面。......
2022-06-12 21:47:39
582
14
原创 一发入魂双链表(十字链表)
前言本篇主要介绍双链表,简易的讲就是你知道你前面的地址和你后面的地址,本篇涉及知识和上篇单链表一样,但是双链表在实现上比单链表要简单,抽象度不高,容易掌握。一、双链表是什么?1.双链表的引入是为了来弥补单链表的部分缺陷,在单链表插入删除时,总是要进行遍历,时间复杂度相对较高。对此,我们采取以空间换时间的策略引入双链表。带头双向循环链表:结构最复杂,一般用在单独存储数据。实际中使用的链表数据结构,都是带头双向循环链表。另外这个结构虽然结构复杂,但是使用代码实现以后会发现结构会带来很多优势,.
2022-05-11 12:22:16
868
1
原创 简单易懂单链表
文章目录一、链表是什么?二、单链表的实现?1.函数接口2、函数具体实现3.主函数设计总结一、链表是什么?概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。1.今天主要介绍单链表的相关内容,涉及到的知识有模块化的思想,结构体,一级指针,二级指针,assert断言,perror函数等。2.在现实中,这种数据结构一般不会单独用来存储数据,更多是作为其他数据结构的子结构,如哈希桶、图的邻接表等等,后续会都更新介绍。二、单链表的实现?1.函
2022-05-11 11:07:29
363
3
原创 一文带你搞懂顺序表
文章目录前言一、顺序表是什么?二、顺序表的实现总结前言学习数据结构是一个快速提高代码量的捷径,与此同时还可以把前面学到的知识充分的运用起来。本篇涉及到的知识为结构体、简单数组、malloc函数、realloc函数、memmove函数、qsort函数、枚举等。一、顺序表是什么?顺序表是为了存储一定的数据进行设计的一种数据结构,与结构体结合起来可以存储自定义的数据类型,克服了原本基本数组的不足之处,另一方面,它可以实现动态的扩容,克服了数组的缺陷,可以有效地避免空间的浪费。二、顺序表的实现总
2022-04-24 16:29:29
1945
12
原创 时间复杂度和空间复杂度
文章目录前言一、算法效率二、使用步骤1.引入库2.读入数据总结前言本篇介绍时间复杂度和空间复杂度相关问题,主要用常见的例子分析,循环、递归、斐波那契、阶乘、冒泡排序等。提示:以下是本篇文章正文内容,下面案例可供参考一、算法效率为啥要引入这个概念?算法在编写成可执行程序后,运行时需要耗费时间资源和空间资源一般衡量一个算法的好坏,一般从时间和空间两个维度来时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需的额外空间。但随着计算机的发展,存储容量已经达到了很高的程度,所以我们如
2022-04-21 23:22:14
610
13
原创 动态内存分配malloc&&calloc&&realloc
文章目录前言引入一、malloc函数1.特点2.实现二、calloc函数1.特点2.实现三、realloc函数1.特点2.实现四、常见动态内存错误1.对NULL指针的解引用操作2.对动态开辟空间的越界访问3.对非动态开辟内存使用free释放4.使用free释放一块动态开辟内存的一部分5.对一片空间多次进行释放6.对动态开辟的内存忘记释放(内存泄漏)前言本篇文章主要介绍malloc&calloc&realloc函数的使用、特点和可能出现的相关问题。引入为什么要引入这些动态空间申请函
2022-04-13 10:17:51
1070
14
原创 结构体、枚举、联合体
文章目录前言一、结构体1.什么是结构体2.结构体的声明3.创建结构体4.匿名结构体5.结构体的自引用6.结构体的初始化7.结构体的内存对齐8.结构体的一些干货二、枚举三、联合体1.定义联合体2.联合体大小的计算前言本篇将介绍结构体的引入、特点、赋值、匿名结构体、结构体对齐数、枚举的作用、联合体的特点、联合体对齐数等一、结构体1.什么是结构体——结构体是一些值的集合,这些值称为成员变量。——结构体的每个成员可以是不同的类型。2.结构体的声明struct tag{ member-lis
2022-03-30 21:18:09
1216
11
原创 通讯录的实现
文章目录前言一、内容梳理二、主体实现(静态版)1、基本功能和定义2、具体功能实现3、主函数设计三、主体实现(动态版)1、基本功能定义2、具体功能实现3、主函数设计总结前言本文将介绍通讯录的两种实现方式静态版和动态版,后期会加入文件操作版!!!一、内容梳理 此通讯录涉及到的知识为宏定义、结构体、枚举、分支选择、内调函数、动态内存开辟、string部分相关函数使用、assert断言、函数封装、初阶指针等等。二、主体实现(静态版)1、基本功能和定义#pragma once#incl
2022-03-30 09:57:24
788
12
原创 string部分函数实现
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、三种方法实现函数strlen1、计数器方法2、指针方法3、递归方法二、实现函数strcpy1、进阶版本2、普通版本三、实现函数strcat四、实现函数strcmp五、实现函数strstr六、使用函数strtok七、实现函数memcpy八、实现函数memmove总结前言C语言给我们提供了很多函数库,今天让我们来模仿下string里面的部分函数吧!!!提示:以下是本篇文章正文内容,下面案例可供参考一、三种方法实.
2022-03-23 20:38:03
1398
8
原创 C语言数组名的意义
当指针指向数组元素时,C语言允许对指针进行算数运算,即加法和减法,这种运算引出了一种对数组进行处理的替换方法,它可以使指针代替数组下标进行操作。用指针处理数组的主要原因之一是效率。数组名的意义:1. sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小。2. &数组名,这里的数组名表示整个数组,取出的是整个数组的地址。3. 除此之外所有的数组名都表示首元素的地址。一维数组二维数组//二维数组int a[3][4] = {..
2022-03-19 17:59:53
4190
2
原创 解析数据在内存中的存储
本章重点数据类型详细介绍整形在内存中的存储:原码、反码、补码大小端字节序介绍及判断浮点型在内存中的存储解析数据类型介绍char //字符数据类型short //短整型int //整形long //长整型long long //更长的整形float //单精度浮点数double //双精度浮点数//C语言有没有字符串类型?以及他们所占存储空间的大小。类型的意义:使用这个类型开辟内存
2022-03-12 12:17:15
176
14
原创 C语言题目左旋数组和杨氏三角求解
1、实现一个函数,可以左旋字符串中的k个字符。例如:ABCD左旋一个字符得到BCDAABCD左旋两个字符得到CDAB#include <stdio.h>//旋转数组void reverse(char* str,int sz){ char *l = str; char *r = str + sz - 1; while (l < r) { char tmp = *l; *l = *r; *r = tmp; l++; r--; }}i
2022-03-04 23:10:55
430
原创 C陷阱与缺陷之数组越界访问
1.问题引入一道经典的笔试题来了,请做好准备!!!试问以下代码在Visual studio 2019环境下执行结果?原因?#include <stdio.h>int main(){ int i = 0; int arr[10] = {0}; for(i=0; i<=12; i++) { arr[i] = 0; printf("Hello World!\n"); } return 0;}运行
2022-02-23 11:03:02
630
4
原创 C语言小项目之扫雷游戏(简易版)
今天给大家带来一个风靡一时的小游戏——扫雷。一、背景引入 《扫雷》是一款大众类的益智小游戏,于1992年发行。游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输。二、需求分析扫雷和上一篇三子棋游戏一样采用模块化设计,分为三个小模块分别写项目的头文件、相关函数、逻辑实现。此项目为简易版与网页版的差距在于没有实现标记雷、成片展开、第一次扫雷不能触发雷。三、代码展示...
2022-01-23 19:49:29
2929
6
原创 C语言小项目之三子棋游戏(简易版)
哈哈哈!!!大家好!!!今天给大家带来一篇三子棋小游戏(简易版)的代码,xdm请跟随我的节奏一起来起舞吧!!!说是简易版是因为没有实现电脑智能化,这样让我们尽情的去向电脑复仇吧!!!一、知识储备二维数组分支循环熟练运用函数熟练操作逻辑思维分析二、需求分析三子棋,简而言之,三子成线,给出一个9宫格,玩家和电脑轮流下棋,看哪一方先三子成线则胜利,项目相对来说对初学者有点困难。1、二维数...
2022-01-22 20:16:56
2894
11
原创 深度解析C语言之递归求解算法
哈哈哈!!!本文主要包括两个部分:1.递归算法介绍。2.基本题目求解。递归,我个人认为也是个极其折磨人的算法,难以理解。曾几何时,有人说过一句令人望而却步的话,人创造迭代(个人理解为循环),神·创造递归。由此可见,递归的恐怖!!!吓死宝宝了!!!让我哭会儿哈!!!算法介绍先来个标准版的:程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接 调用自身的 一种方法,它通常把
2022-01-19 16:58:51
2043
12
原创 C语言之素数求解
素数知识我们很早都有所接触,学习了c语言,让我们来让写个素数判断小函数来感受速度与激情吧!!!涉及知识 分支、循环例:求出100~~200之间的素数何为素数,就是仅仅之有1和它本身两个约数啦!!!干!!!/*思路:素数:即质数,除了1和自己之外,再没有其他的约数,则该数据为素数,具体方式如下*/ //方法一:试除法#include <stdio.h>int main(){ int i = 0; int count = 0; // ..
2022-01-18 15:59:15
854
4
原创 深度解析C语言之分支语句
文章目录系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代...
2022-01-18 15:37:52
108
4
原创 C语言小项目之猜数字
学习完c语言循环、选择内容,我们对c语言有个初步的认识了,让我们来实现一个小项目吧!!!1.猜数字小项目分析:我们利用c语言制造出随机数来猜,在只知道范围的前提下我们无非有以下三种可能,猜大了、猜小了、猜对了。如果猜错了我们让玩家继续猜直到猜对为止,若猜对了给出选择是否继续玩哈!!!2.项目实现我们定义两个函数菜单函数void menu(){ printf("********************\n"); printf("***** 1.play *******\n");
2022-01-16 15:14:47
2661
11
原创 深度解析C语言之常量变量
常量和变量生活中的有些值是不变的(比如:圆周率,性别,身份证号码,血型等等)。有些值是可变的(比如:年龄,体重,薪资)。不变的值,C语言中用常量的概念来表示,变得值C语言中用变量来表示。1.常量C语言中的常量和变量的定义的形式有所差异。C语言中的常量分为以下以下几种:-----字面常量例如1,2,3 ......-----const 修饰的常变量//常变量const int b=10;-----#define 定义的标识符常量#defi...
2022-01-15 15:49:57
292
3
原创 深度解析C语言之数据类型
在开始之前我先提出以下问题:1.c语言的数据类型有哪些?2.c语言中是否有字符串类型?3.为什么出现这样的数据类型?4.每种数据类型的大小是多少?以下目前比较常见的c语言数据类型char //字符数据类型short //短整型int //整形long //长整型long long //更长的整形float //单精度浮点数double /...
2022-01-15 15:11:18
284
3
原创 初学者的报道
自我介绍 Hello world!!! 我来自一所普通师范大学,目前大二在读,软件工程专业,目前学校已经搞完了C语言、Java、数据结构、数据库,但效果十分不佳,近乎绝望的状态,拼一把吧!!!Come on!!!目标 在网上不停的刷到软件工程专业容易就业,我心花怒放,希望有大厂可以收留我!编程学习 学习肯定是一个艰苦的过程,但我想经过一年的洗礼,肯定会收获颇丰,因为专业一致,学习时间充裕,相信勤能补拙、天道酬勤,我一定可以成功!...
2021-12-11 10:03:09
1096
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人