自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 问答 (13)
  • 收藏
  • 关注

原创 二叉树(递归遍历和非递归遍历)(递归求树的高度以及叶子节点数和拷贝树)

#define _CRT_SECURE_NO_WARNINGS#include #include #include #include #include "LinkQueue.h"#include "LinkStack.h"/*前序遍历:先中 再左 再右中序遍历:先左 再中 再右后序遍历:先左 再右 再中*/typedef struct _Tag_BiNode//节点结构体

2016-10-21 22:17:07 1678

原创 两种通用链表(Linux 内核链表)

Linux 内核链表(通用版)以下是头文件#define _CRT_SECURE_NO_WARNINGS#ifndef __LINKLIST_H__#define __LINKLIST_H__#include #include #include #include typedef struct _Tag_LinkNode //用来保存下一个节点{ struct _Tag_

2016-10-20 23:50:45 1637

原创 161017_考试错题集(二维数组表示,字符串大小(sizeof,strlen),链表删除另一种思路)

4、若有定义:int a[3][4],能表示数组元素a[1][1]( B)A *(&a[0]+5)B *(a[0]+5)C (*(a+1)[1])D *(a+5)解答:a[0]等价于*(a+0)           a[1][1]等价于 * (*(a+1)+1)  或者  (*(a+1))[1]  或者 *((a[1])+1),所以C少了一个括号         

2016-10-17 23:29:22 523

原创 华为笔试题,关于操控字符串

问题描述:输入字符串例如:there is a pig,,,.,pig is good.输出:there is a pig good去掉字符串中所有非字母的字符,并删去重复单词#define _CRT_SECURE_NO_WARNINGS#include #include #include char *change(char *str){ if (str == NULL

2016-10-17 22:58:09 331

原创 静态库和动态库的创建和使用

windows下静态库创建和使用静态库的创建1. 创建一个新项目,在已安装的模板中选择“常规”,在右边的类型下选择“空项目”,在名称和解决方案名称中输入staticlib。点击确定。2.在解决方案资源管理器的头文件中添加,mylib.h文件,在源文件添加mylib.c文件(即实现文件)。3.在mylib.h文件中添加如下代码:#ifndef TEST_H#define

2016-10-16 00:00:20 505

原创 浪潮面试题(将一个句子中的单词反转)例:i am bob 输出 bob am i

#define _CRT_SECURE_NO_WARNINGS#include #include #include /*strtok:char *strtok( char *str1, const char *str2 ); *****************str1一定是要分配内存的数据******************功能:函数返回字符串str1中紧接“标记”的部分的指针

2016-10-15 23:24:06 509

原创 ftell,fseek,rewind

int fseek(FILE*stream, long offset, int whence);功能:移动文件流(文件光标)的读写位置。参数:stream:已经打开的文件指针offset:根据whence来移动的位移数(偏移量),可以是正数,也可以负数,如果正数,则相对于whence往右移动,如果是负数,则相对于whence往左移动。如果向前移动的字节数超过了文件开头则出错返回

2016-10-14 22:43:19 283

原创 格式化读写文件fprintf,fscanf

#define _CRT_SECURE_NO_WARNINGS#include #include #include /*int fprintf(FILE * stream, const char * format, ...);功能:根据参数format字符串来转换并格式化数据,然后将结果输出到stream指定的文件中,指定出现字符串结束符 '\0' 为止。参数:stream:已经

2016-10-14 22:30:14 543

原创 函数指针,函数指针数组,以及回调函数(函数指针做函数参数)

#define _CRT_SECURE_NO_WARNINGS#include #include #include void fun01(int a,double b){ printf("fun01:%d %f\n", a,b);}void fun02(int a, double b){ printf("fun02:%d %f\n", a, b);}void fun03

2016-10-14 22:03:47 285

原创 fputc,fgetc,fputs,fgets,fwrite,fread写入或读取数据文件详细介绍

fputs,fgets:/*\r\n windows下存入文本数据时换行符会变成/r/n(/r是换行/n是将光标移动到行首) \nLinux下正常int fputs( const char *str, FILE *stream );标准解释:fputs()函数把str(字符串)指向的字符写到给出的输出流. 成功时返回非负值, 失败时返回EOF. 返回值:成功返回0失败

2016-10-13 22:39:12 1674

原创 二位数组详解以及二维数组的传递

#define _CRT_SECURE_NO_WARNINGS#include #include #include //不管是几维数组,数组名都表示指向数组首元素地址的指针(数组首元素是什么类型,指针就是什么类型) *******重点**********void test01(){ int arr[3][3] = { {11,22,33}, {44,55,66},

2016-10-11 22:25:11 391

原创 数组指针,指针数组,以及数组下标是否可以为负数

/*数组指针:指向一个数组的指针int(*p)[5]指针数组:一个数组,数组里的每一个元素都是一个指针 int *p[5]*/#define _CRT_SECURE_NO_WARNINGS#include #include #include /*******************************************************************//

2016-10-11 22:17:43 1336

原创 内存四驱模型

2016-10-10 23:05:47 388

原创 指针数组堆上分配内存(动态分配内存)

#define _CRT_SECURE_NO_WARNINGS#include #include #include char **allocateSpace(int len){ if (len <= 0) { return NULL; } char **temp = (char **)malloc(sizeof(char *)*len); if (temp == NULL)

2016-10-10 23:04:35 1851

原创 选择排序法,排序数字或者字符串

/*选择排序的思路:选择排序相比于冒泡排序,减少了交换次数,一般情况下冒泡每次比较符合交换要求时都要交换,而选择排序是不断的记录下标,保留最小数或者最大数的下标,在里层循环结束后再进行交换,减少了交换次数具体方法:遍历一次,记录下最值元素所在的位置,遍历结束后将此最值元素调整到合适位置,这样遍历一次,只需要交换一次,便可将最值放置到合适位置*/#define _CRT_SECURE_

2016-10-10 23:02:22 2102

原创 sscanf扣取字符串的常用用法

#define _CRT_SECURE_NO_WARNINGS#include #include#include void test1()//sscanf匹配整个字符串{ const char *str = "asdasdadsad"; char buf[1024] = { 0 }; sscanf(str, "%s", buf); printf("%s\n", buf);}v

2016-10-10 22:59:01 602

原创 sprintf初始化字符串的详细介绍

sprintf初始化字符串,详情请参照各个函数的注释:#define _CRT_SECURE_NO_WARNINGS#include #include #include void test1()//sprintf函数 字符串拼接{ char *p1 = "hello"; char *p2 = "world"; char buf[1024] = { 0 }; sprin

2016-10-10 22:56:01 1252

原创 统计字符串的个数

#define _CRT_SECURE_NO_WARNINGS#include #include #include int statisticString(char *str,const char *findStr){ if (NULL == str) { return -1; } int num = 0; char *p = str; while (1) { p

2016-10-08 23:49:16 317

原创 (两头堵)去除两边空格

#define _CRT_SECURE_NO_WARNINGS#include #include #include void trimSpace(char **str){ if (str == NULL) { return; } char *tmp = *str; if (tmp == NULL) { return; } char *left = tmp; c

2016-10-08 23:45:41 349

原创 大小端模式,栈的生长方向和内存的存放方向

/*栈的生长方向和内存的存放方向栈的开口向下,高地址在上,低地址在下内存的存放方向:自下向上大端模式下:栈的高地址对应数据的低位小端模式下:栈的高地址对应于数据的高位*/#define _CRT_SECURE_NO_WARNINGS#include #include #include //1. 栈的生长方向void test01(){ int a = 10; int

2016-10-08 23:37:46 3122

原创 static,extern详细用法

/*staticC语言:static 的作用:1、全局静态变量:(1)在全局静态区分配内存(2)如果没有初始化,其默认值是0(3改变量在本文件内从定义开始到文件结束可见2、局部静态变量:(1)改变量在全局静态区分配内存(2)如果不显示初始化,那么将被初始化为0(3)它始终在全局静态区,直到程序运行结束(4)其作用域为局部作用域,当定义他的函数或语句块结束时,其作用域随之结束

2016-10-07 23:51:32 480 2

原创 #法(先序遍历)创建二叉树

#define _CRT_SECURE_NO_WARNINGS#include #include #include typedef struct BiTNode{ char data; struct BiTNode *lchild, *rchild;}BiTNode;void inOrder1(BiTNode *T)//前序遍历{ if (T == NULL) { re

2016-08-09 15:28:15 1853 4

原创 二叉树中序遍历非递归算法

#include "iostream"#include "stack"using namespace std;typedef struct BiTNode{ int data; struct BiTNode *lchild, *rchild;}BiTNode;/*步骤1:如果结点有左子树,该结点入栈;如果结点没有左子树,访问该结点;步骤2:如果结点有右子树,重复步骤1;

2016-08-09 15:25:38 507 3

原创 二叉树中序遍历递归算法,求树的高度,以及拷贝树

#include #include #include typedef struct BiTNode{ int date; struct BiTNode *lchild, *rchild;//二叉树左枝,右枝}BiTNode;void inOrder(BiTNode *root)//中序遍历递归算法{ if (root == NULL) { return; } inO

2016-08-09 15:22:35 940 2

原创 中缀转后缀

中缀转后缀方法:遇到数字:直接输出 遇到'(':压栈  遇到')':持续出栈,如果出栈的符号不是'('则输出,否则终止出栈。  遇到符号则判断该符号与栈顶符号的运算优先级,如果栈顶符号的运算优先级高,则出栈并输出,直到优先级相等或栈为空;如果栈顶符号的运算优先级低于或等于当前符号的运算优先级,则将当前符号压栈。  处理完字符串后将栈中剩余的符号全部输出例如:2+(3-1)*5

2016-08-07 12:56:53 731

原创 栈的链式存储

下面是栈的链式存储:下面是头文件:#ifndef __LINKSTACK_H__#define __LINKSTACK_H__#include "stdio.h"#include "stdlib.h"#include "nodelist.h"#include "string.h"typedef void LinkStack;typedef void LinkS

2016-08-07 11:53:30 332

原创 栈的线性存储

栈的特性是先入后出,下面给出栈的线性存储:下面是线性栈和线性链表的头文件:#ifndef __SEQLIST_H__#define __SEQLIST_H__#include #include #include typedef void SeqList;typedef void SeqListNode;SeqList * SeqList_Create(in

2016-08-07 11:44:13 514

原创 双向链表

双向链表示意图如下:下面是双向链表的头文件:#ifndef __LINKLIST_H__#define __LINKLIST_H__#include "stdio.h"#include "stdlib.h"typedef void LinkList;typedef struct LinkListNode{ struct LinkListNode * nex

2016-08-07 11:31:10 209

原创 循环链表

循环链表 和之前的链表原理一样头文件:#ifndef __CIRCLELIST_H__#define __CIRCLELIST_H__#include "stdio.h"#include "stdlib.h"typedef void CircleList;typedef struct _tag_CircleListNode{ struct _tag_CircleLis

2016-08-03 18:14:11 229

原创 线性表链式存储

首先是头文件:#ifndef __NODELIST_H__#define __NODELIST_H__#include "stdio.h"#include "stdlib.h"typedef void NodeList;typedef struct _tag_NodeListNode //单个节点{ struct _tag_NodeListNode * next;}Nod

2016-08-02 19:44:52 204

原创 顺序链表的实现

写了一下顺序链表,为了防止自己忘记,于是乎写在博客里方便查看。程序中的容错处理做的不好,是我懒了,就简单处理了一下下面才给出这儿一套API函数头文件:#ifndef __SEQLIST_H__#define __SEQLIST_H__#include #include #include typedef void SeqList;typedef void Seq

2016-08-02 14:06:13 476

原创 质数因子

#define _CRT_SECURE_NO_WARNINGS#include #include #include int JudgeDigit(long num);unsigned int Montgmery( int num, long index, long mod)//蒙哥马利快速幂算法 (num^index)%mod{ int tmp = 1;//保存奇数是剩下的那

2016-06-18 19:45:26 370

原创 C语言判断一个数是否是质数(蒙格马利快速幂算法)

前言:今天搞了一天这个 蒙格马利 什么的,我自己肯定是搞不定,参照了很多资料,写一下自己的理解总结,防止忘了没地方看。只是我个人的理解,对不对还得另说,一些公式还是不懂,只是大概的理解了下,各位当做参考吧问题描述:判断一个数是否是质数?解题思路:一开始我想的方法就是用For循环一个一个判断,后来看资料说这是最笨的方法,好吧,我得承认我数学太渣下面开始介绍点要用到的知

2016-06-18 17:33:53 3176 1

原创 华为的一道很简单的笔试题,当时答得很烂,现在拿出来重新搞了一下

//代码有参考http://codepad.org/6Fd8V6z0#define _CRT_SECURE_NO_WARNIGNS//程序看起来有点复杂是因为考虑到字母数大于9个的时候,需要转换一下存进字符串,最后的字符串保存在了一个字符数组内了#include #include #include int number_to_char(int number, char *char_ne

2016-06-06 19:59:34 574

原创 最大子数组问题

每周坚持搞三种算法问题,介绍一下最大子数组问题算法思路:分治策略求解,将问题不断分为更小的问题,进而求解问题描述:求数组中相连着的数 相加值最大,例如"{-3,2,3,-4,21,-5},输出最大为2+3-4+21=22"代码:#define _CRT_SECURE_NO_WARNIGNS#include #include #include #define N 10#defi

2016-05-24 19:35:03 264

原创 C语言超大数除法,支持小数

#define _CRT_SECURE_NO_WARNINGS#include #include #include #define N 1000#define M 10  // 保留小数的位数void Input(char number1[], char number2[], int n);//输入数据void Change_str(char number[], int

2016-04-29 14:31:11 1851

原创 C语言,大数除法,不支持小数

#define _CRT_SECURE_NO_WARNINGS#include #include #include #define N 1000void Input(char number1[], char number2[], int n);//输入数据void Change_str(char number[], int n);//数组前后互换void Sub(cha

2016-04-29 12:40:40 707

原创 用C语言写的超长的大数乘法,不支持负数,新手上路请多指点

#define _CRT_SECURE_NO_WARNINGS#include #include #include #define N 20  //此处可以改变输入数字的位数void Multiply(char number1[],char number2[]){    int length_n1 = strlen(number1);    int length_n

2016-04-26 18:57:58 517

原创 大数相减(不支持负数)

#define _CRT_SECURE_NO_WARNINGS#include #include #include #define N 1000 //此处可以改输入大数据的位数struct Add_Number{    int num;    struct Add_Number *pnext;};typedef struct Add_Number A_N;

2016-04-25 23:11:54 474

原创 新手一枚,写了个大数相加的C程序

#define _CRT_SECURE_NO_WARNINGS#include #include #include #define N 1000 //此处可以改输入大数据的位数struct Add_Number{    int num;    struct Add_Number *pnext;};typedef struct Add_Number A_N;

2016-04-25 23:08:58 327

空空如也

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

TA关注的人

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