自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

转载 数据类型的取值范围计算

在c++中,我们都知道各个数据类型的值都有各自所能表达的范围,举个例子来说吧,我们以整型变量int为例说明怎样去计算数据类型的取值范围:整型变量int为例说明怎样去计算数据类型的取值范围:我们假设int在vc++开发环境中占用两个字节的单元,这只是为了简化过程的,事实上我们都知道它占四个字节的。从二进制的原码说起: 如果以最高位为符号位,二进制原码最大为011111111111111...

2017-11-05 20:14:38 3877

原创 判断三角形形状

题目描述编写程序,根据三角形三条边的长度判断该三角形是哪种三角形?三角形的类型包括:等边三角形、等腰三角形、直角三角形、普通三角形也有可能,无法组成三角形输入输入包括多行数据,每行包括三个正整数,a,b,c代表三角形三条边的长度输出针对每行输入,做如下处理后换行:如果该三角形是等边三角形,输出DB如果不是等边三角形,是等腰三角形,输出DY

2017-08-12 21:05:53 3437 3

原创 字符串反转

题目描述给定一个长度不超过100的字符串,求其长度,并将其反转后输出输入输入包括一行长度不超过10的字符串,字符串仅由小写字母组成输出输出包括2行,第一行为字符串长度,第二行为字符串反转后输出结果。样例输入hello样例输出5olleh解析:此题不难,但要明白gets和%s的区别,gets可以读入空格,而%s不可以。求字符串的长度可

2017-08-12 20:45:56 987

原创 该谁发球了

题目描述乒乓球是一项很受国人欢迎的运动,假设A和B对打,每次都是A先发球,那么乒乓球的发球规则如下:1、一方得11分,另一方得分小于等于9分,比赛结束,前者获胜;2、如果出现10:10的比分,那么比赛进入延长赛,双方轮流发一次球,当分差是2分时比赛结束,得分多者获胜;3、其它情况,双方轮流发2次球;请编写程序,根据当前比分判断该谁发球了?输入输入包括多行数据

2017-08-12 20:16:46 1642 2

原创 递归总结

递归,按照我的理解就是将一个大规模的问题缩小,通过设置递归函数,不断的调用,直到问题的解决。简而言之,就是采用“大事化小,小事化了”的思想。看例题:题目描述给出一个递归公式f(n)=n+f(n-1),其中n为小于等于10000的正整数,f(0)=0,给定n,求f(n)的值输入输入包括一个正整数n,n输出输出f(n)样例输入1样例输出

2017-08-12 16:24:45 471

原创 C语言中的输出格式

%a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99)%c 字符%d 有符号十进制整数%f 浮点数(包括float和doulbe)%e(%E) 浮点数指数输出[e-(E-)记数法]%g(%G) 浮点数不显无意义的零"0"%i 有符号十进制整数(与%d相同)%u 无符号十进制整数%o 八进制整数%x(%X) 十六进制整数%p 指针%s 字符串

2017-06-21 21:20:14 316

原创 第一章:绪论

期末复习(一)第一章    绪论1.1  什么数据结构 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科数据结构+算法=程序程序设计的实质是对实际问题选择一种好的数据结构,加之设计一个好的算法,而好的算法在很大程度上取决于描述问题的数据结构       1.2基本概念和术语 数据结构(1)定义:相互之间存在一种或多种特

2017-06-14 22:33:45 317

转载 如何根据前序遍历序列和中序遍历序列确定二叉树

假设某二叉树的先序遍历序列是abdgcefh,中序遍历序列是dgbaechf,画出二叉树,并给出其后序遍历序列.以下面的例题为例进行讲已知一棵二叉树的先序遍历序列和中序遍历序列分别是abdgcefh、dgbaechf,求二叉树及后序遍历序列.分析:先序遍历序列的第一个字符为根结点.对于中序遍历,根结点在中序遍历序列的中间,左边部分是根结点的左子树的中序遍历序列,右边部分是根结点的右子树

2017-06-11 22:25:49 746

原创 采用十字链表存储的稀疏矩阵

题目描述当矩阵的非零元个数和位置在操作过程中变化较大时,就不宜采用顺序存储的结构来表示三元组的线性表了。因此,在这种情况下,采用链式存储结构表示三元组更为恰当。十字链表就是能够实现这样功能的一种数据结构。在十字链表中,每个非零元可以用一个包含5个域的结点表示。其中i、j和e这3个域分别表示该非零元所在的行、列和非零元的值,向右域right用来链接同一行中下一个非零元,而向下域down用

2017-05-28 16:26:20 7719 4

原创 行逻辑链接的矩阵乘法

题目描述对于一个稀疏矩阵,当需要频繁的随机存取任意一行的非零元时,则需要知道每一行的第一个非零元在三元组表中的位置。为此,可以将算法5.2中用来指示“行”信息的辅助数组cpot固定在稀疏矩阵的存储结构中。这种“带行链接信息”的三元组表即为行逻辑链接的顺序表。其类型描述如下:针对存储于行逻辑链接顺序表的稀疏矩阵,其矩阵相乘的算法与经典算法有所不同。因此,对于两个稀疏矩阵相乘(Q=M×

2017-05-28 16:24:36 2950

原创 稀疏矩阵快速转置

题目描述稀疏矩阵的存储不宜用二维数组存储每个元素,那样的话会浪费很多的存储空间。所以可以使用一个一维数组存储其中的非零元素。这个一维数组的元素类型是一个三元组,由非零元素在该稀疏矩阵中的位置(行号和列号对)以及该元组的值构成。而矩阵转置就是将矩阵行和列上的元素对换。参考算法5.1中的具体做法,令mu和nu分别代表稀疏矩阵的行数和列数,不难发现其时间复杂度为O(mu×nu)。而当非零元的

2017-05-22 18:47:09 6112 1

原创 稀疏矩阵转置

题目描述稀疏矩阵的存储不宜用二维数组存储每个元素,那样的话会浪费很多的存储空间。所以可以使用一个一维数组存储其中的非零元素。这个一维数组的元素类型是一个三元组,由非零元素在该稀疏矩阵中的位置(行号和列号对)以及该元组的值构成。矩阵转置就是将矩阵行和列上的元素对换。现在就请你对一个稀疏矩阵进行转置。以下是稀疏矩阵转置的算法描述:图:稀疏矩阵转置的算法描述输入

2017-05-21 23:01:00 1081

原创 KMP字符串模式匹配算法实现

题目描述KMP算法是字符串模式匹配算法中较为高效的算法之一,其在某次子串匹配母串失败时并未回溯母串的指针而是将子串的指针移动到相应的位置。严蔚敏老师的书中详细描述了KMP算法,同时前面的例子中也描述了子串移动位置的数组实现的算法。前面你已经实现了子串移动的数组,现在就来利用该数组来实现KMP模式匹配。下面是相应的算法:图:KMP算法输入3组字符串,每组字

2017-05-21 22:57:25 1016

原创 KMP算法中的模式串移动数组

题目描述字符串的子串定位称为模式匹配,模式匹配可以有多种方法。简单的算法可以使用两重嵌套循环,时间复杂度为母串与子串长度的乘积。而KMP算法相对来说在时间复杂度上要好得多,为母串与子串长度的和。但其算符比较难以理解。在KMP算法中,使用到了一个next数组。这个数组就是在比较失配时母串指针不必回溯,而子串指针移动相应位置即可。我们给出书中next数组的算式表示以及算法,请你实现之。

2017-05-21 22:55:47 1927

转载 KMP算法Next数组计算

KMP算法是在最近这两年的软件设计师考试中才出现的。2次都是让求Next函数的序列(其实是)。先看看题吧。(2011年下半年上午题)(2012年上半年上午题)其实做这个题很简单,我先说说这个题里的各种概念。给定的字符串叫做模式串T。j表示next函数的参数,其值是从1到n。而k则表示一种情况下的next函数值。p表示其中的某个字符,下标从1开始。看等式左

2017-05-19 22:16:20 369

原创 字符串的插入

题目描述将一个字符串插入到另一个字符串当中。算法描述如下:图:字符串插入算法输入输入包括多个测试样例,每个一行,包括两个字符串(stra,strb)和一个整数 i。字符串仅由英文大小写字母或数字组成。输入的字符串长度不超过127。输出将后一个字符串插入到前一个字符串的第i个字符前。输出插入后的结果后换行。样例输入strng

2017-05-18 21:36:19 3313

转载 字符串的堆分配

为什么需要字符串的堆分配? 因为字符串的顺序存贮结构中,对字符串的操作,在字符串中插入一个子字符串,连接两个字符串以及串的替换操作,度可能会 出现空间的不足,而必须要舍弃部分数据的情况,而数组的空间如果分配的过大,又会浪费内存空间,为了避免顺序存贮结构的 局限性,可以使用动态内存分配的方式来表示串,并实现串的基本操作 什么是堆分配? 通常在函数中定义的变量,

2017-05-18 21:34:36 985

原创 字符串链接

将给定的字符串连接起来。书中的算法描述如下:图:字符串连接算法输入输入包括多对字符串,每对字符串占一行,用空格隔开。每个字符串只包含数字和英文字母大小写且长度不超过100。输出将后一个字符串连接到前一个字符串后面,如果结果字符串长度超过100,输出一行“Result String is cutted.”否则将结果字符串输出来。

2017-05-16 22:51:27 1120

原创 定位子串(二)

题目描述将子串在母串中第一次出现的位置找出来。图1:在母串中第pos个位置定位子串的算法图2:从母串中第pos个位置获得长度为len的子串输入若干对字符串,每对字符串占一行并用一个空格分开。前一个字符串为母串,后者为子串。字符串只包含英文字母的大小写。每个字符串不超过98个字符。输出输出子串在母串中首次出现的位置,如果母串中不包含子串则输出0。每个整数占一行。样例输入ACMCLUB ACMD

2017-05-16 19:07:44 1742 1

转载 C语言strcmp()函数:比较字符串(区分大小写)

头文件:#includestrcmp() 用来比较字符串(区分大小写),其原型为:    int strcmp(const char *s1, constchar *s2);【参数】s1, s2 为需要比较的两个字符串。字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。strcmp()首先将s1 第一个字符值减去s2 第一个字符值,若差值为0 则再

2017-05-15 21:22:56 3325 1

转载 C语言中返回的0和1

return不仅仅是返回的意思,它是结束并返回,也就是只要执行return就一定结束程序并且返回一个值。而C语言规定return0是结果是错的时候的推出。return1是正确时候的推出。比如我们求a/b,当我们输入a和b时,我们可以给定if(b=0) return 0;(也就是returnERROR;)当我们误输入时,输入了b为了,程序就返回0并退出了,不会再执行后面的a/b。

2017-05-15 21:21:18 11834

转载 函数声明

函数声明中的形参名往往被忽略,如果声明中提供了形参的名字,也只是用作辅助文档。另外要注意函数声明是一个语句,后面不可漏分号!C语言编译系统是由上往下编译的.一般被调函数放在主调函数后面的话,前面就该有声明.不然C由上往下的编译系统将无法识别。正如变量必须先声明后使用一样,函数也必须在被调用之前先声明,否则无法调用!函数的声明可以与定义分离,要注意的是一个函数只能被定义一次,但可以声明多次。

2017-05-15 21:19:44 271

转载 C语言函数参数的传递详解

一、三道考题开讲之前,我先请你做三道题目。(嘿嘿,得先把你的头脑搞昏才行……唉呀,谁扔我鸡蛋?)考题一,程序代码如下:void Exchg1(int x, int y){   int tmp;   tmp = x;   x = y;   y = tmp;   printf("x = %d, y = %d\n", x, y);}main(){ 

2017-05-15 19:10:17 677

转载 c语言获取用户输入字符串是scanf和gets的区别

解释gets(s)函数与 scanf("%s",&s) 相似,但不完全相同,使用scanf("%s",&s) 函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止。1.scanf()所在头文件:stdio.h语法:scanf("格式控制字符串",变量地址列表);接受字符

2017-05-15 18:49:34 73548

转载 定位子串(一)

#include#includeint strloc(char str1[],char str2[]);int main(){ char str1[5],str2[20]; int loc; while(gets(str2)!=EOF&&gets(str1)!=EOF) { loc=strloc(str1,str2); if

2017-05-11 22:58:26 1869

原创 Hello world!

#include#includeint main(){printf("Hello,world!\n");system("Pause");return 0; }

2017-05-11 15:40:43 268

原创 遍历二叉树

#include#includetypedef char Elemtype;//定义二叉树的结点typedef struct BiTNode{char data;struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;//建立二叉树,约定用户遵照先序遍历输入数据CreateBiTree(

2017-05-10 23:00:49 213

原创 八进制数

问题 L 算法3-1:八进制数时间限制: 1 Sec  内存限制: 128 MB[提交]题目描述将十进制数转换为八进制,并输出。图:将十进制数转换为八进制并输出输入输入包含若干十进制正整数。输出输出相应的八进制数,每个占一行。样例输入123789191002034

2017-05-07 15:23:16 705

原创 数据结构之一元多项式相乘

#include#includetypedef struct Node{ int coef; int expn; struct Node *next;}List;List *Creat(){ List *head,*p1,*p2; p1=p2=(List *)malloc(sizeof(List)); head=NULL; scanf("%d%d",&p1

2017-05-03 16:41:26 4786

原创 数据结构之单链表的冒泡排序

#include#includetypedef struct Node{ int data; struct Node *next;}List;List *Creat(){ int i,n; scanf("%d",&n); List *head,*p1,*p2; p1=p2=(List *)malloc(sizeof(List)); head=NULL;

2017-05-03 16:20:39 1830

原创 数据结构-单链表反转

#include#includetypedef struct Node{    int data;    struct Node *next;}List;List *Creat(){    int i,m;    scanf("%d",&m);    List *head;    List *p1,*p2;    p1=p2=(List *)ma

2017-05-02 14:09:13 285

空空如也

空空如也

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

TA关注的人

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