C语言
文章平均质量分 53
肥学
本人热爱编程,会把平时学习到的知识和有趣的见闻分享出来,点个关注一起学习吧。
展开
-
树的存储和图的存储结构总结
目录标题树图#define max_size 100树//双亲表示法struct Node{ int data; int parent;//记录父节点再数组的位置};struct Tree { Node TreeArr[max_size]; int n;//节点数};//孩子表示法struct childNode { int childIndex; childNode* nextChild;};struct firstChild { int data; chil原创 2022-05-09 08:25:50 · 538 阅读 · 1 评论 -
二叉树寻找前驱的普通方法和线索二叉树对比
目录标题普通方法缺点线索二叉树注意这里我们只给出了中序的线索二叉树实现,但是再实现先序线索二叉树的时候要避免死循环的情况要对最后一个节点的tagClueLChild修改为true普通方法//结构体typedef struct TreeNode { int data; struct TreeNode* lchild; struct TreeNode* rchild;}*BT,TN;//寻找二叉树中序遍历的前驱BT pre;void findPreInorder(BT root,i原创 2022-05-06 07:48:53 · 756 阅读 · 0 评论 -
二叉树的链式存储和顺序存储对比
目录标题顺序存储需要注意的是链式存储值得注意的是点击直接资料领取顺序存储需要注意的是对于节点个数为n的二叉树,在顺序存储的时候对于位置为i的节点i的左孩子为2ii的右孩子为2i+1i的父节点为(i/2)向下取整特别的如果这棵树是完全二叉树那就爽了又多了几个可以用的条件当i<=(n/2)向下取整 为分支节点当i>(n/2)向下取整 为叶子节点#include<stdio.h>#define SIZE 100typedef struct Node {原创 2022-05-06 07:09:30 · 764 阅读 · 0 评论 -
KMP算法的几种写法
目录标题简介主串和字串和next数组都从零位置开始主串和字串和next数组都从1位置开始重头戏计算next数组求nextval简介KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法)。KMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是通过一个next()函数实现,函数本身包含了模式串的局部匹配信息。KMP算法的时间复杂度O(m+n)原创 2022-05-01 09:38:27 · 642 阅读 · 1 评论 -
C++中的深拷贝和浅拷贝的案例对比理解
用两个案例对比来理解为什么要深拷贝和浅拷贝案例一#include<iostream>using namespace std;/*简单说浅拷贝就是赋值操作:深拷贝就是在堆区间又申请了一个空间,进行拷贝操作*/class Per {public: int* name;public: Per(int n) { name = new int(n);//这里必须建立堆区数据原因可以看我的上一篇文章 } ~Per(){};};void test() {原创 2022-04-29 09:33:02 · 1385 阅读 · 2 评论 -
C++的构造、拷贝构造和析构的简单总结
构造class Per { char p_name; int p_age;public: //构造 Per() {}; Per(int age) { p_age = age; } Per(char name, int age) { p_name = name; p_age = age; } //拷贝构造函数 Per(const Per& p) { p_name = p.p_name; p_age = p.p_age; cout <<原创 2022-04-28 08:10:38 · 1278 阅读 · 0 评论 -
C++函数的用法注意事项
目录标题默认参数占位参数重载重写全部示例默认参数//默认参数int test1(int a=5,int b=6) { return a + b;}//函数声明的时候写了默认参数,函数实现的时候就不能有了,两者只能有一个int test2(int a = 3, int b = 4);int test2(int a,int b) { return a + b;}占位参数//占位参数.这里没有用到void test3(int a,int ) { cout << "原创 2022-04-26 08:09:30 · 513 阅读 · 0 评论 -
引用的实质和常量的使用
/*引用的实质就是指针常量,数据类型* const a;*/对比使用//返回引用数据类型int& test() { static int a = 10;//我们上次也说了静态类型的是放在全局区的在代码运行前就已经分配好了内存 return a;}//返回指针数据类型int* test1() { static int b = 23; return &b;}//常量引用void printvalue(const int& a) {//防止引用的数据类原创 2022-04-25 08:48:59 · 548 阅读 · 1 评论 -
C++的程序内存模型——四区
目录标题应用场景代码运行前的两个区代码运行后的两个区栈区堆区应用场景为什么说这个呢因为在之前Java的编程中肥学遇到了,在自定义的函数体中的局部变量想要输出的情况,熟悉Java的大佬可能都知道,这样做的方法使用最多的就是直接返回return然后再去接收,恰好当时我的返回值又不能是这个值所以当时我就被迫创建了一个静态变量。后来有大佬告诉我可以放在类里面也就是new这样也能带出来,当时试了试确实可以,但是不知道为什么。今天来还愿,解决一下这是为什么。但是用的C++解释的。代码运行前的两个区这个比较好理解原创 2022-04-25 07:47:30 · 1085 阅读 · 3 评论 -
C++通讯录最新版期末不挂科系列
目录标题简单说一下效果演示源码主菜单防止不按规定输入函数添加联系人删除联系人修改联系人信息途中解决的问题点击直接资料领取简单说一下此次没有什么华丽的外表,就是用c++来写的简单的通讯录管理系统,是在上次结构体联系总结之后写的,因为有一点python和Java的基础,在学完基础语法后也是很快写出来了。有需要的小伙伴可以看看或者说指导指导,谢谢了效果演示源码部分源码展示主菜单void menu() { cout << "\n\n*****************主菜单*******原创 2022-04-24 07:30:24 · 539 阅读 · 1 评论 -
C++中的结构体案例练习和引用传递和值传递
先来说一下结构体的一些例子包含创建结构体和初始化操作#include<iostream>#include<string>using namespace std;struct User { char name[20]; char sex[5]; int age;};struct Student { string name; int age; int score;}stu;//第三种int main() { struct User u1;原创 2022-04-20 10:01:11 · 674 阅读 · 1 评论 -
用混合编程实现两个LED交替闪烁
LED是程序开发中最常用的状态指示设备。开发板上有两个用户可编程LED,他们直接与CPU的GPIO连接,低电平有效(点亮),通过对G口的操作控制CPU板左下角的LED1和LED2实现轮流闪烁。详细的资源用如下表。原创 2022-04-12 08:54:18 · 4174 阅读 · 2 评论 -
C语言地址传递和引用传递
值传递就不说了,就是字面意思#include<iostream>using namespace std;void change(int& n,int m){ printf("在函数里的地址%d\n",&n); printf("在函数里的值%d\n",n); n=m; m=9;}void change2(int* f,int p){ printf("在函数里的地址%d\n",&f); printf("在函数里的值%d\n",f); print.原创 2022-04-11 08:34:12 · 2391 阅读 · 1 评论 -
详解密码学中几种常见密码加密与解密
已知明文:MEET ME AFITER THE TOGO PARTY,分别用以下方法加密,写出加密后的密文。然后完成解密。(1)Caesar加密,分别用k=3,k= 5加密;(2) Vigenere密码,k = word:(3)栅栏式密码;(4)矩阵置换密码,矩阵3×8,分别用k= 12345678和k= 34127856。原创 2022-04-05 10:49:41 · 10584 阅读 · 14 评论 -
五分钟学会一篇期末学生学籍管理系统
学生学籍管理系统开搞不说话!!!直接就情况是这样的,以前看到热榜上总有些有些大佬老是说什么学妹半夜怎么怎么样,学姐天天缠着他怎么怎么,我都觉得些事情都有些虚假。注:除了我直到有一天晚上收到一个消息,故事是这样的,故事有两个人代表我和我的聊天对象我(肥学大师):在一个安静的夜晚,肥学正在废寝忘食的搞学术。。。。。X:学长,学长在吗?/甜笑/甜笑肥学:在啊 怎么了X:想拜托你点事 /害羞/害羞是不是以为艳遇,是个漂亮的小学妹???/坏笑其实真正的它是聊天对象(代号x):原创 2021-06-03 18:48:44 · 1863 阅读 · 127 评论 -
期末Web大作业图书管理系统(.net&C#)
目录视频演示一、实验目的二、设备与环境三、实验内容1.需求分析:2.逻辑结构:3.系统设计四、实验结果及分析点击直接资料领取视频演示 .net图书管理系统 特别介绍????小白练手专栏,适合刚入手的新人欢迎订阅编程小白进阶????python有趣练手项目里面包括了像《机器人尬聊》《恶搞程序》这样的有趣文章,可以让你快乐学python练手项目专栏????另外想学JavaW原创 2021-12-30 14:13:27 · 10477 阅读 · 70 评论 -
银行家算法
银行家算法 1 需求分析1.1 银行家算法的实现思想允许进程动态地申请资源,系统在每次实施资源分配之前,先计算资源分配的安全性,若此次资源分配安全(即资源分配后,系统能按某种顺序来为每个进程分配其所需的资源,直至最大需求,使每个进程都可以顺利地完成),便将资源分配给进程,否则不分配资源,让进程等待。1.2 死锁的概念死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互原创 2021-04-17 15:36:57 · 1364 阅读 · 0 评论