- 博客(8)
- 收藏
- 关注
原创 LZW基于C语言的实现
1 LZW压缩算法LZW算法具有很多版本,其大致思想一致。主要思想是尽最大可能不产生冗余,以自适应的方式建立一个内部字典。其算法流程如下:LZW算法流程:步骤1: 开始时的词典包含所有可能的根(Root),而当前前缀P是空的; 步骤2: 当前字符(C) :=字符流中的下一个字符; 步骤3: 判断缀-符串P+C是否在词典中 (1) 如果“是”:P := P+C // (用C扩展P) ; (2...
2018-07-08 16:41:13
2606
2
原创 双链表
1,双链表的基本操作双链表可以避免单链表只能访问后继的缺陷,但其副作用也是十分明显的(额外的前驱指针,操作复杂一点)。1.1 结构定义较之单链表,双向链表多了一个指向前驱的指针。在整个双向链表中,头结点的前驱指针以及最后一个结点的后继指针为空。结构定义如下:typedef struct node{ int data; node *prior; node *next;}Node;1.2 添加...
2018-07-08 16:21:40
168
原创 数据结构复习之路-线性表
一,线性表是数据结构中最基础的内容,但它却占据着及其重要的地位。因为在后序的很多数据结构的操作都是建立在熟练掌握线性表的操作基础之上的。下面就开始复习线性表的内容吧。1.线性表的定义。线性表是指按顺序存储内容的数据结构。其物理实现的方式有两种,1)基于顺序存储的数组,2)基于链式存储的链表。2.线性表的实现。#define SIZE 50typedef struct{ Typ
2017-11-30 21:29:51
279
原创 C语言实现日历(命令行传参)
日历的实现,需注意的问题是(1)判断某年某月的方法是先确定某一天的日期属性,其他时间则根据差值的不同来确定其属性。(2)将命令行参数进行转换代码如下:若读者有好的算法,希望指正赐教//本程序需在命令行窗口执行 #include#include#include//小项目之万年历的实现 typedef struct{ int year; int month; int day
2017-04-06 21:36:32
486
原创 3n+1问题
今天看到一个3n+1问题,其大致意思是对于输入的任意一个整数n,若其是偶数,则将其除以2 ,若是奇数,则将其乘以3再加1;重复此步骤,其结果必定终止于1。例如 :输入的数为5,则 5 16 8 4 2 1对于上述序列的长度称为n的循环节长度。想要求编写一个程序求某段区间内循环节长度最大的数,并输出。输入输出示例:input output1 1
2017-04-06 21:18:09
554
原创 基于Java的扫雷游戏
前几天为了巩固java的GUI,决定写一个简单的扫雷游戏。制作过程中发现稍微难一点的就是当点击的不是雷时,需要实现连续展开的功能。此功能主要需要运用到递归的算法。其需要注意的地方时考虑边界条件。实现效果如下:结束界面游戏界面自定义界面
2017-04-04 10:23:44
659
转载 学习摘录之回文数
bool pd(int n)//判断是否是回文数 { int temp=n; int m=0; while(temp) { m=m*10+temp%10;//m为n的逆序 temp/=10; } return n==m; }
2017-04-04 10:16:02
174
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人