![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言学习
MaiDang_
进阶的小菜鸟
展开
-
可变参数编程
在日常的写代码过程中,我们会发现 printf() 函数可以实现任意个数的数字的打印:#include <stdio.h>int main(){ printf("%d,%d\n", 1, 2); printf("%d,%d,%d,%d\n", 1, 2, 3, 4);} 但是让我们自己写一个函数,例如:求两个数的平均值的函数 Avg(int nu...原创 2018-09-17 21:16:56 · 972 阅读 · 0 评论 -
红黑树删除的详细介绍
要搞清楚红黑树的删除,一定要结合红黑树的5个性质: 1. 每个节点或是红的或是黑的 2. 根节点为黑色 3. 外部节点是黑色的 4. 如果一个结点是红色的,那么它的两个儿子都是黑色的 (红红不能相连) 5. 对每个结点的,从该节点出发到外部结点的所有路径上包含相同个数的黑色结点(黑高相同)红黑树的删除策略: ...原创 2019-07-19 23:39:56 · 1326 阅读 · 4 评论 -
printf("%d %d\n", ++i,++i) 输出的值
原因: https://blog.csdn.net/xv1356027897/article/details/81608267汇编指令了解: https://www.cnblogs.com/lxgeek/archive/2011/01/01/1923738.htmlvoid func(int a, int b){}int main(){ ...原创 2019-07-17 20:45:04 · 5509 阅读 · 0 评论 -
一级指针and二级指针------树的创建and单链表的创建
在最近的一段时间内,对一级指针和二级指针有一个疑惑,什么时候用二级指针,什么时候用一级指针?尤其是在二叉树的创建和不带头的单链表的头插时,前者参数列表使用的是一级指针,后者参数列表使用的是二级指针,伪代码如下:二叉树的创建:typedef struct BtNode{ int val; struct BtNode *left; struct BtNode *right...原创 2019-06-09 17:29:41 · 361 阅读 · 0 评论 -
结构体的大小 -- 内存对齐
#include<iostream>using namespace std;struct t1 //结果为8的倍数,因为最大成员类型double占8字节{ char a; //1 char b; //1 short c; //2 ,增加4个字节的空白 double d; //8}; //16struct t2 //结果为2的倍数,因为最大成员类型short占2字...原创 2019-05-24 15:10:32 · 150 阅读 · 0 评论 -
函数指针
#include<iostream>typedef int(*PFunc)(int,int); //PFunc 表示的是 int(*)(int,int) 类型的函数指针int Sum(int a,int b) { return a + b;}int Sub(int a, int b){ return a - b;}int ToCalc(int a, ...原创 2019-03-13 17:04:56 · 86 阅读 · 0 评论 -
常见排序的实现
一.直接插入排序 这是相当简单的排序方式,在具体实现的时候会有不同,具体有以下的两个实现://实现1void Insert_sort(int *arr, int length){ int i; int j; int tmp; int k; for (i = 1; i < length; i++) { tmp = arr[i]; //方法不好,即使...原创 2019-02-04 18:15:22 · 174 阅读 · 0 评论 -
函数默认值& C和C++的符号生成 &函数重载 &内联函数 &const在c和c++中的区别 & 基本数据类型的隐式转换规则
函数的默认值: 1.自右向左依次赋值 2.不能重复赋值 3.一般给在声明上例如; int Sum(int a,int b, int c = 10); C和C++的符号生成: c语言中,符号生成只与 函数名 有关 c++中,符号和函数原型有关(函数返回值+函数名+参数列表) 函数重载: ...原创 2019-01-08 23:52:32 · 179 阅读 · 0 评论 -
指针学习
一.指针的定义与使用:1.指针的初始化与赋值: 若指针变量即没有初始化也没有赋值,则其指向的内存单元是不确定的,这时如果要操作指针就 会出现问题,因此指针要先赋值(明确其指向哪) 在进行赋值的时候要注意: (1).保证指针指向一个合适的值 (2).指针类型一致才能赋值 int a = 10; ...原创 2019-01-07 22:43:31 · 173 阅读 · 0 评论 -
常见问题代码
1.有n个人围成一圈,顺序排号.从第一个人开始报数(从1报到3),凡报到3的人退出圈子,问最后留下的是原来的几号? 注:用数组实现, 此问题类型为:约瑟夫环问题#include<stdio.h>int main(){ int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int flag = 0; ...原创 2018-10-09 12:54:06 · 281 阅读 · 0 评论 -
typedef--数据结构--复杂度分析
数据结构: 1.数据的4种逻辑结构: 集合 线性结构 树形结构 图 2.数据存储: 逻辑关系 和 物理关系 顺序表: 逻辑相连,物理地址也相连 链表: 逻辑相连,物理地址不一定相连 3.线性表包括: 顺序表 链表 ...原创 2018-09-28 21:58:29 · 332 阅读 · 0 评论 -
泛型编程
我们在实现两个同类型的数据交换的时候,因为这两个数可能是两个 int 也可能是 double 或者是 char,对于这样的问题我们要实现以下代码:#include<stdio.h>void Swap_int(int *a, int *b)//交换两个int类型的数{ int tmp = *a; *a = *b; *b = tmp;}void Swap_do...原创 2018-09-18 17:55:22 · 175 阅读 · 0 评论 -
红黑树的插入
在介绍红黑树之前我们先介绍一下BST树和AVL树: BST树又叫做二叉搜索树;该树的特点是:树中的数值不能重复;任意结点的左孩子的值比该结点的值小;任意结点的右孩子的值比该结点的值大。这样的树就叫做BST树,图示如下:这就是一颗BST树,此结构拥有二叉树结构的优点,理论上能到达logn的插入和删除效率,但是很不幸,此结构在存储单调变化的数据是会退化为链表;当我们插入单递增...原创 2019-07-20 22:44:04 · 210 阅读 · 0 评论