![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
葫芦大仙
胡乱写写
展开
-
c/c++有用的函数
一、初始化数组memset();此时头文件必须为二、排列函数sort();https://blog.csdn.net/xs18952904/article/details/81463822原创 2021-03-25 21:08:06 · 118 阅读 · 0 评论 -
C语言字符串函数
原创 2021-03-17 20:01:09 · 71 阅读 · 0 评论 -
字符数组和字符串的区别,C语言字符数组和字符串区别详解
http://c.biancheng.net/view/337.html此文详细解释了字符数组、字符串长度的求法、遍历原创 2021-02-22 17:54:34 · 110 阅读 · 0 评论 -
树的存储
二叉树的存储连续存储(以完全二叉树形式存储)因为内存是连续的,而树本身是一个非连续的形式,所以如果一颗二叉树想要以数组形式存储时必须转化为完全二叉树形式存储。例子:图中这个二叉树想要存储就必须先化成满二叉树蓝色的都为垃圾节点,然后再删除右侧垃圾节点,使满二叉树变成完全二叉树优点:查找某个节点的父节点和子节点(也包括判断有没有子节点)的速度很快缺点:耗用内存空间过大链式存储...原创 2021-02-22 17:18:27 · 1615 阅读 · 0 评论 -
汉诺塔 C语言
汉诺塔题目思想代码实现注意题目共三根柱子,把圆盘按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。思想主要运用了递归的思想,而递归本质上就是数学中的归纳法。所以我们先按照归纳法的思想看n=1时的情况:这时我们直接将盘子从A移动到C即可n=3时可以按照三步方法先把A上面的两个盘子(1、2)借助C移动到B再把A上仅有的3盘子直接移动到C在将B上面的两个盘子借助A移动到C可以看出n个盘子时的伪代码为:先把A上面的n-1个盘子原创 2021-02-19 16:48:18 · 167 阅读 · 0 评论 -
队列
定义先进先出分类跟栈一样,分为静态(数组)和动态(链表)静态队列静态队列都必须是循环队列结构图如下,rear指针必须指向队尾最后一个元素的下一个位置,这就比如链表中的头指针和尾指针一样:如果有头结点(即头指针指空)那么尾指针就指向最后一个元素,如果尾指针指向最后一个元素的下一个(即尾指针指空),那么就没有头结点。即不管是数组还是链表,头尾两指针必须有一个指空...原创 2021-02-18 17:14:47 · 73 阅读 · 0 评论 -
指针
指针定义指针就是地址,而地址是内存单元的编号分类基本类型的指针int main(void){ int i = 10; int *p; p = &i;//指针p指向i printf("i的地址是:%p\np的地址是: %p\n", &i, &p); printf("i的值是:%d\np的值是:%p\n", i, p); printf("*p的值是,%d\n",*p); return 0;}从输出可以看出其中的结构为p与i是两个变量,改变p的值i原创 2021-02-05 00:17:42 · 139 阅读 · 0 评论 -
结构体
定义结构体是用户根据实际需要自己定义的复合数据类型,其实跟java中类很像,结构体就相当于没有方法的类class Student{ int sid; char name[200]; int age; void speak(){};};将上面代码中方法去掉,class改成struct就成了结构体struct Student{ int sid; char name[200]; int age;};结构体定义了一个新的数据类型,不是变量,变量会分配内存,而数据类型不分配原创 2021-02-05 18:09:24 · 72 阅读 · 0 评论 -
typedef的用法--结构体
也就是给int取了一个新名字叫zhnagsan,其实结构体中的大括号可以理解成一个空格,这样子typedef的用法其实都一样了。也就是相当于给int指针类型起了一个新名字叫做李四。这种表示中PA等价于 struct Arr *加一个*号其实类似于非结构体中的。A等价于struct Arr。这一部分才是一个整体。原创 2021-02-15 18:00:25 · 806 阅读 · 0 评论 -
栈
变量的分配方式 int t = 10;//这是静态分配,从栈中分配int t;t=(int)malloc(sizeof(int));//这是动态分配,从堆中分配栈的分类静态栈先进后出的数组动态栈先进先出的链表(头删头插)原创 2021-02-16 17:16:05 · 68 阅读 · 0 评论 -
已知先序序列和中序序列,求后序序列
概念先序遍历:(1)访问根结点;(2)先序遍历左子树;(3)先序遍历右子树。中序遍历:(1)中序遍历左子树;(2)访问根结点;(3)中序遍历右子树。后序遍历:(1)后序遍历左子树;(2)后序遍历右子树;(3)访问根结点。由先序序列和中序序列求后序先序序列:gdafemhz中序序列:adefghmz第一步:先序序列的第一个字符是root,故root是g;第二步:确定root后,看中序序列,可以看出,g左边的adef是左子树的结点,右边hmz是右子树的结点;第三步:左子树ad原创 2020-06-03 23:17:49 · 10627 阅读 · 0 评论 -
C语言三种传参方式
函数作用是交换a和b的值值传递void Change(int a, int b){ int m; m=a; a=b; b=m;}运行结果没有进行值的交换用指针进行地址传递在这里插入代码片原创 2020-05-02 01:22:29 · 857 阅读 · 0 评论