是席木木啊
这个作者很懒,什么都没留下…
展开
-
数据结构[C语言]-二叉树前中后序-递归&非递归遍历代码集合
1 头文件 <BitTree.h> 由于二叉树非递归遍历实现时,需要用到栈和队列,因此,也将这部分代码这个头文件中了。#include <stdio.h>#include <stdlib.h>/************************************************************************//* 二叉链表结点原创 2021-12-08 14:21:33 · 1027 阅读 · 0 评论 -
C语言_利用命令行参数做目标文件复制操作
主要是对标准main函数参数的解析,标准main函数定义如下,int main(int argc,char** argv){ //函数体 return 0;}int arg, char* argv[] 这两个参数类型是固定写法,参数名不定;参数 arg 表示带入参数的个数,指针数组 argv[] 存储每个参数的首地址。 【1】头文件中代码如下,//头文件名称-Filedealing.h#inc原创 2021-12-05 12:48:02 · 355 阅读 · 0 评论 -
数据结构-图【深度优先遍历递归与非递归&C++代码实现】
关于图的深度优先遍历(Depth-First-Search,DFS)算法,具体原理在此不做阐述,仅是结合算法原理给出C++的代码实现。DFS递归与非递归算法 & C++代码实现0 关于基本类的定义1 DFS递归算法实现2 DFS非递归算法实现3 代码测试4 链式栈类-LinkedStack0 关于基本类的定义 关于顶点表VNode、边表ArcNode、邻接表ALGraph的定义,同上篇文章中给出的;使原创 2021-10-30 20:22:35 · 764 阅读 · 0 评论 -
数据结构-图【图解BFS求解单源最短路径&C++代码实现】
接上前一篇《数据结构-图【广度优先遍历图解&C++代码实现】》,接着写BFS-图的广度优先遍历算法在求解单源最短路径上的应用。 单源最短路径,顾名思义,就是求:从图中的某个点P到其它各个点的最短路径长度。下面通过图解方式阐述整个处理流程,并给出对应的C++代码实现。BFS求解单源最短路径 & C++代码实现1 图解-BFS的单源最短路径求解过程1.1 算法流程的伪代码实现1.2 图解算法流程2原创 2021-10-30 14:51:03 · 2201 阅读 · 0 评论 -
数据结构-图【广度优先遍历图解&C++代码实现】
关于图的广度优先遍历(Breadth-First-Search,BFS)算法,具体原理在此不做阐述,仅是将该算法以流程图解形式给出,并结合算法原理给出C++的代码实现。图解BFS & C++代码实现1 BFS算法图解1.1 基本算法流程伪代码1.2 算法流程图解2 代码实现2.1 宏定义与头文件包含2.2 边表类-ArcNode2.3 顶点类-VNode2.4 邻接表类-ALGraph3 代码测试附:队列定义-LinkedQueue1 BFS算法图原创 2021-10-30 02:09:40 · 1023 阅读 · 0 评论 -
C++-线索二叉树【中序线索二叉树构造与遍历】
????????????,花了好几个个小时,看了线索二叉树的构造,感觉是挺简单的…但是,上手写中序线索二叉树的构造代码时,,,算法流程没错,代码没错,愣是构造不出来子树下面的右孩子结点对应的后继线索,后来设置了将其中的一个参数前置结点preNode作为类的成员变量拿出去,总算构造出来了。。。中序线索二叉树构造与遍历1 线索二叉树结点定义2 线索二叉树类定义3 代码测试4 测试结果1 线索二叉树结点定义#include <iostream>原创 2021-10-25 02:27:22 · 565 阅读 · 0 评论 -
C++-二叉树递归遍历与非递归遍历实现
-二叉树递归遍历与非递归遍历实现引言0 有关线性表结点定义-LinkNode1 栈的链式存储结构实现-LinkedStack2 队列的链式存储结构实现-LinkedQueue3 二叉树的链式存储结构实现3.1 树的结点定义-TreeNode3.2 二叉树定义3.3 前中后序遍历-递归算法实现3.4 前中后序遍历-非递归算法实现3.5 层序遍历算法实现4 代码测试5 测试结果引言 二叉树的遍历方法有:前序遍历、中序遍历、后序遍历、层序遍历,其中前中后序遍历又有原创 2021-10-24 19:15:33 · 3629 阅读 · 1 评论 -
C语言-二进制文件copy操作
C语言-二进制文件复制操作逐字节处理逐块处理函数测试逐字节处理/** * 文件处理-逐字符复制二进制文件 */int copyFileByByte(const char* srcpath,const char* destpath){ //声明变量 FILE *srcFile=NULL, *destFile=NULL; char ch; //打开文件 srcFile=fopen(srcpath,"rb"); if (srcFile==NULL) return 0; destFile原创 2021-10-18 00:42:09 · 862 阅读 · 0 评论 -
C语言-串的定长顺序存储实现&BF暴力匹配算法
串的匹配,即:子串在主串中的检索操作,通常将子串在主串中第一次出现的位序作为返回值返回。头文件编写串的基本操作实现 此处选择定长顺序存储结构描述串,并对串的一些基本操作进行实现。#include <stdio.h>#include <stdlib.h>//最大容量#define MaxSize 255/*** 串-定长顺序存储实现*/typedef struct S原创 2021-10-17 16:39:57 · 605 阅读 · 0 评论 -
数据结构-稀疏矩阵的压缩存储实现-三元组
稀疏矩阵的压缩存储实现-三元组1 数据结构设计与头文件编写1.1 数据结构设计1.2 数据结构实现1.3 核心代码编写2 代码测试2.1 数据结构基本操作测试2.2 核心代码测试*3 头文件完整定义1 数据结构设计与头文件编写 这里偷个懒,把代码全部塞到头文件里面了,有需要的话将其做一下简单分割就好。1.1 数据结构设计 如上面图片中所叙述的那样,需要设计一个三元组数据结点,用于存放从稀疏矩阵中转换过来的三原创 2021-10-17 00:35:09 · 3094 阅读 · 0 评论 -
数据结构-3.3.6综合应用题1-括号匹配
1 题目描述 设有一个算术表达式S,其中包含圆括号、方括号、花括号3种类型的括号,编写一个算法实现括号匹配,用于判断表达式中的括号是否匹配,算术表达式为字符串类型,以’\0’作为结束符。2 代码编写2.1 链式栈#include <stdio.h>#include <stdlib.h>/*** 括号匹配[栈的应用]*///数据元素-数据类型typedef char ElemClass;//链式栈typedef原创 2021-10-16 18:41:19 · 221 阅读 · 0 评论 -
数据结构-3.2.6综合应用题1-附带tag标志域的循环队列
# 1 题目描述 若希望循环队列中的元素都能够得到利用,则需设置一个标志域tag,并以tag的值为0还是1,来区分队头指针front和队尾指针rear相同时的队列的状态是“空”,还是“满”,试编写与此结构相应的入队和出队算法。 # 2 基本思路 主要是队列为空、队列为满时的判断条件, [1]队空条件:Q->front==Q->rear&.原创 2021-10-16 17:20:55 · 733 阅读 · 0 评论 -
数据结构-3.2.6综合应用题2-队列与栈实现字母表逆置
1 题目描述 Q是一个队列,S是一个空栈,实现将队列中的元素逆置。2 基本思路 队列特点:先进先出; 栈特点:先进后出; 基本思路:将队列中的元素出队,同时在进栈,时间复杂度为O(n);然后将栈中的元素出栈,再入队,时间复杂度为O(n);即可得到逆序后的字母序列,总的时间复杂度为O(n)。3 代码编写3.1 头文原创 2021-10-14 23:05:43 · 705 阅读 · 3 评论 -
数据结构-3.1.5综合应用题4
1 题目描述 * 设单链表的表头指针为L,节点结构由data和next两个域构成,其中data域为字符型,设计算法判断链表的全部n个字符是否中心对称。 例如:xyx; xxyy; xxzyy2 代码编写2.1 单链表定义#include <stdio.h>#include <stdlib.h>/** * 设单链表的表头指针为L,节点结构由data和next两个域构成,其中data域为字符型,设计算法判断链表的全部n个字原创 2021-10-14 21:10:38 · 586 阅读 · 0 评论 -
C语言-共享栈基本操作复习
头文件编写#include <stdio.h>#include <stdlib.h>/***共享栈:使用数组实现 *///最大存储容量#define MaxSize 100//数据元素类型typedef int ElemType;//共享栈定义typedef struct SSqStack{ ElemType data[MaxSize];//存储数据元素 int top[2]; //1号栈顶指针[左端]、2号栈顶指针[右端]}SSqStack;/*原创 2021-10-14 20:22:13 · 184 阅读 · 0 评论 -
C语言-链式队列基本操作复习
头文件编写#include <stdio.h>#include <stdlib.h>//定义数据元素类型typedef int ElemType;/** * 链式队列实现 *///定义节点typedef struct QNode{ ElemType data;//数据域 struct QNode* next;//指针域}QNode;//定义链式队列typedef struct SqQueueList{ QNode* front;//队头指针 QNod原创 2021-10-14 01:47:28 · 211 阅读 · 0 评论 -
C语言-循环队列基本操作复习
由于顺序队列存在“假溢出”的问题,这并非是真正的数据元素溢出,相反的,在其他的位置,仍然可以用来存储数据元素,但已无法进行方便的操作。而循环队列借助取模运算,实现了数组上的逻辑成环,这样,就可以解决“假溢出”问题。头文件编写#include <stdio.h>#include <stdlib.h>//数据元素类型定义typedef int ElemType;//最大元素数量#define MaxSize 50/**原创 2021-10-14 01:22:20 · 151 阅读 · 0 评论 -
C语言-链栈基本操作复习
偷个懒,将函数声明与函数实现都写在头文件里面了。另外,链栈的数据元素结点定义和单链表的数据元素结点定义相同,但是由于栈是操作受限的线性表,因此,对于进栈、出栈操作,仅仅允许在首个元素节点位置进行。【此处链栈的实现,也预设了头结点】头文件编写与函数实现#include <stdio.h>#include <stdlib.h>//数据元素类型定义typedef int ElemType;//栈元素结点定义[形似单链表,预设头结原创 2021-10-13 01:12:25 · 189 阅读 · 0 评论 -
C语言-顺序栈基本操作复习
偷个懒,将函数声明与函数实现都写在头文件里面了。另外,此处预设栈顶指针的初始值为-1,如果设为0或者其它值,那么判断栈空和数据元素进栈以及出栈的基本操作if判断条件会有所不同。头文件声明&函数实现#include <stdio.h>#include <stdlib.h>//栈中最大元素数#define MaxSize 50typedef int ElemType;//数据元素类型//定义顺序栈typedef s原创 2021-10-13 00:36:15 · 142 阅读 · 0 评论 -
C语言-双链表基本操作复习
头文件声明#include <stdio.h>#include <stdlib.h>//元素类型定义typedef int ElemType;//头结点定义typedef struct DNode{ ElemType data;//数据域 struct DNode *prior,*next;//前驱结点指针&后继节点指针}DNode,DLinkedList;/*** 创建双链表*/void CreateDLinkedList(DLinkedLi原创 2021-10-10 19:32:50 · 139 阅读 · 0 评论 -
C语言-单链表基本操作复习
头文件编写#include <stdio.h>#include <stdlib.h>typedef int ElemType;//头结点定义typedef struct LNode{ ElemType data;//数据域 struct LNode* next;//指针域 }LNode,LinkedList; /** * 单链表初始化-头结点 */void CreateList(LinkedList* linkedlist);/** * 计算带有头原创 2021-10-10 16:57:04 · 106 阅读 · 0 评论 -
数据结构-选择排序之堆排序
下面分别为java语言与C语言的堆排序代码实现。1 Java代码实现@Testpublic static void HeapSort_test() { int arr[] = { -1, 49, 38, 65, 97, 76, 13, 27, 49 }; System.out.println("堆排序前"); InsertSort.printArray(arr, arr.length); HeapSort(arr, arr.length原创 2021-10-06 02:15:12 · 141 阅读 · 0 评论 -
C语言-函数指针与函数指针作为函数参数
函数指针,即:通过指针变量引用函数(拿到函数在内存中的起始地址,也即:函数执行的入口地址),通过函数指针不仅可以实现函数的间接调用;而且,将函数指针作为函数参数进行传递,还可以实现C语言下-相对于同一个函数指针在独立功能模块下的多态复用。举例如下,#include <stdio.h>#include <stdlib.h>int (*pFunc)(int m,int n);int (*pFunc1)(char*);int ma原创 2021-09-25 01:07:59 · 422 阅读 · 0 评论 -
C语言-BST二叉排序树的基本操作
太晚了,就先写一部分,剩下的白天再写。头文件声明与函数定义#include <stdio.h>#include <stdlib.h>typedef int ElemType;/*** 定义节点*/typedef struct BSTNode{ ElemType data;//数据域 struct BSTNode *lchild,//左孩子 *rchild;//右孩子}BSTNode;/*** 插入节点原创 2021-09-16 02:13:49 · 269 阅读 · 0 评论 -
C语言-串的堆分配存储表示与基本操作实现
接着上一篇《C语言-串的顺序存储表示与基本操作实现》,下面对串的堆分配存储表示与基本操作进行实现,在此不再使用strlen、strcpy等C函数库中提供的函数,【通过指针遍历等方式,结合malloc与free两个堆内存管理函数,自行编写相关操作代码】。相关代码如下,头文件声明#include <stdio.h>#include <stdlib.h>/** * 串的堆分配表示 */typedef struct { cha原创 2021-09-10 02:00:29 · 463 阅读 · 0 评论 -
C语言习题-求解f(x)=e^x在[a,b]区间上的积分值
定积分基本思想:大化小、常代变、近似和、取极限。利用程序计算定积分的值,就是利用近似和来逼近定积分值的过程。下面直接上代码,#include <stdio.h>#include <math.h>/*** 定积分* 被积函数:f(x)=e^x* 积分区间:[a,b]* @param a-积分下限* @param b-积分上限*/static double diExp(double a,double b){ /*声明变原创 2021-09-09 13:48:47 · 637 阅读 · 0 评论 -
C语言-串的顺序存储表示与基本操作实现
1 串的三种存储表示 串,即:字符串。要注意的是,C语言中是没有字符串数据类型的,而将其作为一种数据结构——“内容受限的线性表”进行实现,并对空串、空格串、串的长度、子串与主串等概念进行了约定【详见 《数据结构(C语言版)》 ,严蔚敏、吴伟民编著】。 串的存储表示主要分为三种, 【1】顺序存储表示 :使用字符型数组(一块连续的内存存储空间)来存储串的内容,其最大长原创 2021-09-07 01:42:46 · 2099 阅读 · 0 评论 -
C语言-链队列基本操作
队列的链式存储结构实现,相比于循环队列实现要复杂一些,但是没有队满的限制。头文件声明#include <stdio.h>#include <stdlib.h>/** * 队列的链式存储实现 * [带头结点的单链表] * [-类似于链栈,队列的链式存储实现也不会出现队满的情况] *///数据类型typedef int ElemType;//定义节点typedef struct SqQueueNode{ El原创 2021-09-04 02:02:15 · 752 阅读 · 1 评论 -
C语言-循环队列基本操作
循环队列依靠取模运算,实现队列中数据元素的逻辑成环操作。其相比队列的顺序存储实现,可以避免“假溢出”的问题。头文件声明#include <stdio.h>#include <stdlib.h>/** 循环队列实现*///数据元素上限#define MaxSize 50//定义数据类型typedef int ElemType;/*结构体定义*/typedef struct SqQueue{ ElemType原创 2021-09-04 01:12:42 · 529 阅读 · 0 评论 -
C语言-链栈基本操作
写代码着实会上瘾,是该克制一下了。。。下面是链栈的基本操作实现。 再啰嗦一句哈,对于链栈,其压栈操作无需考虑栈满溢出的问题,压栈操作的实质上就是线性表的“头插法”操作。头文件定义#include <stdio.h>#include <stdlib.h>/** * 栈的链式存储实现-在此不提供头结点 *///数据类型typedef int ElemType;//栈的节点原创 2021-09-02 02:09:43 · 1521 阅读 · 0 评论 -
C语言-顺序栈基本操作
栈,即操作受限的线性表[因为它只能在一端进行数据元素的插入和删除操作]。从存储结构角度,其具体实现可分为顺序栈和链栈。先搞个顺序栈的基本操作吧。头文件声明#include <stdio.h>#include <stdlib.h>/** * 顺序栈 *///数据类型typedef int ElemType;//宏定义-最大长度#define MaxSize 50/** * 结构体定义 */typedef原创 2021-09-02 01:26:23 · 361 阅读 · 0 评论 -
C语言-单链表基本操作
晚上睡不着,花十五分钟复习一下单链表的基本操作。代码如下,头文件声明#include <stdio.h>#include <stdlib.h>//数据类型typedef int ElemType;/** * 单链表节点 */typedef struct LNode{ ElemType data;//数据域 struct LNode* next;//指针域}LNode,*LinkedList;//函数声明原创 2021-08-30 01:44:29 · 298 阅读 · 1 评论 -
C语言-数据类型转换中的数据截断&零值填充&符号扩展
直接贴上验证的代码,处理过程在注释部分已经标出。#include <stdio.h>//数据类型转换void dftype(){ //浮点型转双精度发生的数据截断 float a=2.3; double d=9.1; //类型转换 int int1=a;//float->int 【float转int,向零方向取整-->结果为2】 float float1=int1;//int->float 【int转float原创 2021-08-22 12:16:14 · 479 阅读 · 0 评论 -
C语言-除法和取模运算正负号问题
/** * 除法&取模运算的数值验证 */void modeCompute(){ //除法运算:和数学上的运算结果相同 int res1=(-6)/5; int res2=6/(-5); int res3=(-6)/(-5); int res4=6/5; //取模运算:a%b,结果符号和a保持一致 int mod1=(-6)%5; int mod2=6%(-5); int mod3=(-6)%(-5); int mod4=6%5; //打印结果 printf("-6原创 2021-08-22 00:56:33 · 1637 阅读 · 0 评论 -
C语言习题:浮点型数值的四舍五入运算
1 题目描述 设变量n为float类型,m为int类型,现需要根据实际运算需求,对n进行固定位数的四舍五入运算,设计函数实现此需求,返回四舍五入运算的结果。2 实现思路 C语言中float数据类型向int类型转换时,会发生数据值的截断。 例如:将3.1415926赋值给一个int类型,赋值结果为3. 据此,设计如下实原创 2021-08-22 00:46:00 · 3533 阅读 · 0 评论 -
C语言-顺序表基本操作
/* 线性表的顺序存储实现 */#include <stdio.h>#include <stdlib.h>#define INITSIZE 8//node-dynamic arraytypedef struct LNode{ int* data;//存储数据元素的数组 int length;//当前长度 int maxSize;//最大容量 }LinearList;//methods declaredvoid InitList(LinearList*原创 2021-07-30 00:54:07 · 188 阅读 · 0 评论 -
C++:MySQL数据库与文件IO操作案例
C++的MySQL数据库与文件IO操作案例1 案例概述1.1 案例要求1.1 案例分析2 技术路线3 案例实施3.1 MySQL数据库服务启动3.1.1 在计算机管理界面启动3.1.2 在计算机管理界面启动3.2 C++项目创建与基本配置3.3 代码编写3.3.1 类的设计与编写3.3.2 数据库连接操作与文件IO操作4 案例测试与运行1 案例概述1.1 案例要求 使用C++语言连接MySQL数据库,查询名称为test的数据库下的idnumtable数据表原创 2020-12-13 19:02:17 · 502 阅读 · 0 评论 -
C-风格字符串与C++中的string类
字符串常量、字符数组、字符指针——C-风格字符串1 什么是C-风格字符串?1.1 字符型数组不一定是字符串!1.2 C&C++中的:字符串常量1.3 C++中不太一样的char *与动态内存分配二级目录三级目录 在编写C语言或者C++程序时,我们可能会经常对字符串进行操作。严格的来说,C++中提供了两种类型的字符串,一种继承于C语言,我们在这里将其称为”C-风格字符串“;另一种是在C++中采用面向对象(OOP)编程思想定义的string类。那么,这两者原创 2020-12-11 23:20:23 · 825 阅读 · 0 评论 -
队列类模板【C++模板类应用之一】
队列类模板1 队列(Queue)特点2 队列中常用的操作3 队列类模板的设计与代码实现3.1 队列类模板的设计3.2 队列类模板的实现3.3 队列类模板的使用举例1 队列(Queue)特点 队列(Queue)是一种先进先出的数据结构,例如:日常生活中在食堂排队打饭,每个后到的人都要排到队伍的最后边,而队伍最前面的人最先打到饭离开队伍。 因此,队列总是从队尾加入元素,而从队首移除元素,满足先进先出的规则。一般来说原创 2020-12-04 23:28:43 · 2455 阅读 · 2 评论 -
从stdio.h头文件看C的输入/输出
stdio.h头文件解析引:1、注释信息解读2、部分编译预处理解读①字节对齐预处理命令字节对齐字节对齐命令②C运行时库预处理③C运行时接口处理3、3个变量类型①size_t变量类型②FILE变量类型③fpos_t 变量类型4、10个宏定义①NULL宏定义②EOF宏定义③stderr、stdin 和 stdout宏定义[1]stderr、stdin 和 stdout含义[2]stderr、stdin 和 stdout与fopen()返回值的关系④限制性宏定义-4个⑤适用于setvbuf 函数的第三个参数的宏-原创 2020-07-07 16:35:51 · 954 阅读 · 1 评论