![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习日记
文章平均质量分 90
M_iilk
这个作者很懒,什么都没留下…
展开
-
哈夫曼编码/译码器
哈夫曼编码/译码,哈夫曼树,树形图打印原创 2022-11-05 15:41:47 · 2269 阅读 · 3 评论 -
C语言复习(更新)
C语言复习(更新)原创 2022-03-17 15:39:02 · 786 阅读 · 0 评论 -
深度优先搜索入门(DFS)
Depth First Search,DFS 深度优先搜索,每一步都将后面的每种可能执行到底 使用递归来进入下一步 基本格式为 void dfs(int step) { 判断边界 尝试每一种可能 for(i=1;i<=n;i++) { 递归下一步 dfs(step+1); } return; } 输出1-n的全排列为例使用DFS //深度优先搜索尝试全排列 #include<stdio.h> int a[10],book[10],n; //!C语言中全局变量在没有赋值时默认原创 2020-11-12 15:22:23 · 107 阅读 · 0 评论 -
使用数组模拟链表
** 创建两个链表一个用来存储数据(data[ ]),另一个表示这个位置的数的指向(right{[ ]) 插入链表则直接将数据放在第一个数组的末尾,并将其值在第一个数组中遍历,当下一个数据大于插入值时,将上一个数据指向插入值,并将插入值指向下一个数据** #include<stdio.h> int main() { int data[101],right[101]; int i,n,t,len; //读入已有的数 scanf("%d",&n); for(i=1;i<原创 2020-11-12 14:54:14 · 68 阅读 · 0 评论 -
链表入门与插入链表
链表为数据与指针相连,便于插入数据 缺点在于查找比较费时,需要遍历整个链表 #include<stdio.h> #include<stdlib.h> //创建结构体表示链表的结点类型 struct node { int data; struct node *next; }; int main() { struct node *head,*p,*q,*t; int i,n,a; scanf("%d",&n); head=NULL;//头指针初始化为空 //其中-原创 2020-11-12 14:27:25 · 155 阅读 · 0 评论 -
欧几里得算法求公约数
1.常规求公约数方法 使用短除法 2.欧几里得算法/辗转相除法 两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。 数学表示:gcd(a,b)=gcd(b,amodb) 算法表示: 1.流程图: 2.伪代码: input a,b; //输入两个整数。 create r; //中间量用来存放余数。 while(b>0) { r=a%b; a=b; b=r; } output a; //当b=0时,a即为最大公约数。 C程序设计: /* 程序说明:欧几里得算法,求两个正整原创 2020-11-09 12:51:11 · 1715 阅读 · 0 评论 -
通过验证回文,学习栈
与队列相反 栈:先进后出 FILO(first in last out) #include<stdio.h> #include<string.h> //注意使用gets()获取字符串以及strlen()获得长度均需要头文件string.h int main() { char a[101],s[101]; int i,len,mid,next,top; gets(a);//读入字符串 len=strlen(a);//求字符串长度 mid=len/2-1;//求字符串中点原创 2020-11-08 16:23:30 · 56 阅读 · 0 评论 -
使用结构体,学习队列
**队列:先进先出原则(FIFO,first in first out) 类似于排队 ** #include<stdio.h> struct queue { int data[100]; int head; int tail; };//不能省略分号 int main() { struct queue q; int i;//初始化 q.head=1; q.tail=1; for(i=1;i<=9;i++) { scanf("%d",&q.data[q.tail原创 2020-11-08 15:59:54 · 137 阅读 · 0 评论 -
《小哼买书》数组排序和去重
//此处使用桶排序,考虑到编号在1-1000以内 #include<stdio.h> int main() { int a[1001],b[1001],n,i,j=1,t,turns=0; a[0]=0; printf("输入调查人数\n"); scanf("%d",&n); for(i=1;i<=1000;i++) a[i]=0; printf("请输入图书编号\n"); for(i=1;i<=n;i++) { scanf("%d",&a原创 2020-11-08 15:43:05 · 63 阅读 · 0 评论 -
删除数组中为0项并生成新数组
判断质数 #include<stdio.h> #include<math.h> #include<stdlib.h> int primejudge(int a) { int i,j; j=(int)sqrt(1.0*a); if(a<=1) {return 0;} else for(i=2;i<=j;i++) { if(a%i==0) a=0; } return a; } int main() { i原创 2020-11-03 17:08:58 · 178 阅读 · 0 评论