自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 资源 (1)
  • 收藏
  • 关注

原创 判断闰年,根据输入的年月输出这个月的天数,根据输入的年月日输出这一年1月1日到month-day有多少天

采用的方法是“哨兵位”,浪费了一个空间int Is_leap_year(int year){ if(year < 1) { return -1; } return (0 ==year % 4 && 0 != year % 100)||(0 == year % 400);//是闰年}int Get_month_day(int year,int month){ if(month < 1 || month > 12 || -1 == Is_le.

2020-08-19 12:42:04 290

原创 static修饰的变量的初始化,static的标记符号

凡是在函数外定义的变量在.data区凡是在函数内定义的变量在.stack区,函数内用static修饰的变量在.data区static语句只执行一次(有个标记域),可以利用指针改变其标记域(0-->未初始化,1-->已初始化)void fun1(int x){ static int a = 0; static int b = x; a++; b++; printf("fun1:a = %d b = %d\t",a,b);}int *fun2(int x){ st

2020-08-16 19:31:22 351

原创 有1-10之间的若干个数字,找到重复次数最多的一个,注意计数器次数最多5个,即数组长度为5

从头到尾遍历数据,第一遍统计奇数然后得到奇数中次数最多的数字,第二遍统计偶数然后得到奇数中次数最多的数字,最后得到整个数组中次数最多的数字typedef struct Pair{ int num; int times;}Pair;//数对Pair MaxTimes(int *arr,int len){ int brr[5]={0};//5个数据的计数器 for(int i = 0;i < len;i++)//统计奇数 { if(arr[i] % 2 != 0)//奇数

2020-08-14 20:02:17 240

原创 有1-10之间的若干个数字,找到重复次数最多的一个(10个计数器方法)

从头到尾遍历数据,第一遍统计奇数然后得到奇数中次数最多的数字,第二遍统计偶数然后得到奇数中次数最多的数字,最后得到整个数组中次数最多的数字填充brr数组,然后遍历并且比较typedef struct Pair{ int num; int times;}Pair;//数对Pair MaxTimes(int *arr,int len){ int brr[11]={0};//十个数据的计数器,浪费一个空间(0下标空间),使1->1,2->2 for(int i = 0

2020-08-14 20:01:01 447

原创 带头结点的双向循环链表

头文件(相关函数说明):#pragma oncetypedef struct DCNode{ int data; struct DCNode *prior; struct DCNode *next;}DCNode,*DCLinkList;void InitLinkList(DCLinkList Head);DCLinkList FindNode_Pos(DCLinkList Head,int pos);int GetLength(DCLinkList Head);vo..

2020-08-07 14:13:24 1844

原创 线性表的链式表示和实现(带头结点的单链表)---> j集(无重复元素),A=A∪(B∩C),并使求解结构A仍保持递增,构造C=A∪B,利用O(1)删除某节点,逆置,判断有无环,若有环找到入环第一个结点

C语言之线性表的链式表示和实现(带头结点的单链表)①无重复元素的交集②已知递增有序的单链表A,B和C分别存储了一个集合,设计算法实现:A=A∪(B∩C),并使求解结构A仍保持递增。要求算法的时间复杂度为O(|A|+|B|+|C|)。③假设有两个按元素递增有序排列的线性表A和B,均以单链表作存储结构,请编写算法将A表和B表归并成一个按元素递减有序排列(允许表中含有值相同的元素)的线性表C,并要求利用原表(A表和B表)的结点空间构造C表;④利用O(1)的空间给定单链表中某个结点p(并非最后一个结

2020-08-07 14:01:59 518

原创 线性表的顺序表示和实现-----两个集合的并集(无序,有序),线性表的就地逆置,两个线性表的比较大小,插入元素(O(1)), A 表中 删去既在 B 表中出现又在 C 表中出现的元素,

线性表的顺序表示和实现①集合A=AUB,无序的;②A,B两个顺序表递增有序,执行C=AUB,算法时间复杂度要求为 O(n+m)(A,B这两个顺序表只允许遍历一次);③//实现顺序表的就地逆置,即利用原表的存储空间将线性表(a1,...,an)逆置为(an,...,a1);④//设A=(a1,...,an)和B=(b1,...,bn)均为顺序表。试写一个比较 A,B 大小的算法,依次比较 A,B 元素的值,如果一样则继续比较,如果不一样则比较完成。;⑤//设顺序表va中的数据元素递增有序。

2020-08-06 22:19:57 861

C++仿写指针指针(auto-ptr,unique-ptr,shared-ptr,weak-ptr)

智能指针其实是一个类,是对普通指针进行了封装,将其作为参数传入智能指针的构造函数实现绑定。只不过通过运算符重载让它“假装”是一个指针,也可以进行解引用等操作。既然智能指针是一个类,对象都存在于栈上,那么创建出来的对象在出作用域的时候(函数或者程序结束)会自己消亡,所以在这个**类中的析构函数中写上delete**就可以完成智能的内存回收,避免忘记释放指针指向的内存地址造成内存泄漏。。 C11 里面的四个智能指针: 1. auto ptr, 2. unique ptr, 3. shared ptr, 4. weak ptr 下面的代码对这四个智能指针进行一一仿写:

2023-10-17

平衡二叉树的所有操作(全)

平衡二叉树(Balanced Binary Tree),简称平衡树(AVL树):树上任一结点的左子树和右子树的高度之差不超过1。平衡二叉树的一系列操作:删除、插入(在二叉排序树中插入新结点后,如何保持平衡)、调整平衡等等等。 在二叉排序树中插入新结点后,如何保持平衡? 查找路径上的所有结点都有可能受到影响。 从插入点往回找到第一个不平衡结点,调整以该结点为根的子树。 每次调整的对象都是“最小不平衡子树”。 1)LL平衡旋转(右单旋转)。 由于在结点A的左孩子(L)的左子树(L)上插入了新结点,A的平衡因子由1增至2,导致以A为根的子树失去平衡,需要一次向右的旋转操作。 总结为如下三步: ①newroot指向B ②A结点向右下旋转成为B的右子树的根结点,而B的原右子树则作为A结点的左子树 ③A的左孩子B向右上旋转代替A成为根结点

2022-12-25

二叉排序树的相关代码(插入,删除,创建,遍历)

二叉排序树(Binary Sorting Tree)又称二叉搜索树(Binary Search Tree),是一种特殊结构的二叉数,作为一种排序和查找的手段,对应有序表的对半查找,通常亦被称为数表。其定义也是递归的。 二叉排序树的定义: 每个节点都有一个作为搜索依据的关键码(key),所有节点的关键码互不相同; 二叉排序树或者是空树或者是具有下述性质的二叉数, ①其左子树上所有结点的数据值均小于根结点的数据值; ②右子树上所有结点的数据值均大于根结点的数据值; ③左子树和右子树又各是一棵二叉排序树。 二叉排序树用中序遍历就可以得到由小到大的有序序列

2022-12-18

C++仿写string类

使用C++语言仿写STL中的string

2022-07-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除