自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 链表创建为什么需要使用内存分配?

我们知道,在全局定义的结构体变量,存储全局数据区;在函数内定义的结构体变量,存储在栈区;使用malloc函数申请空间来存放结构体变量,则该结构体变量存储在堆空间中。那假如有1000个在函数内部(栈区)或者函数外部(全局数据区)定义好的结构体,能否直接创建链表?比如下面段代码,提前定义了结构体数组,然后串联成类似“链表”的形式,但假如节点数目大于6,则难以扩展。但是这样徒有链表的形式,不具备链表动态扩展的特点。我们说的链表,其节点数据一般放在堆空间中。...

2016-09-27 09:45:09 11334

原创 字符指针、字符串、字符数组、字符串数组

和charch[]={'a','b','c','d','e'};刚开始学习时,我以为有“字符串指针”的概念,也就是指向字符串的指针。其实没有这个概念,字符指针与字符串指针,都指向一个字符。比如代码char*ptr[]={"xxxxxxxx","bbbbbbbb","ccccccc"};这两个都是字符数组,数组元素都是字符,但第二种不会自动添加空字符。字符串数组,数组元素都是字符串。字符指针一般用来指向一个字符,或者指向一个字符串。字符指针p指向这个字符串的首字符'a'。......

2016-09-26 10:08:04 679

原创 257. Binary Tree Paths

1、问题描述2、代码(非本人所写,十分精彩的C代码)int pathsNum(struct TreeNode* root);void Traverse(struct TreeNode* root, char** array, char* spre, int* pindex);char* stringAdd(char* s, int val);char** binaryTreeP

2016-09-25 22:13:01 413

原创 my_atio()代码出错原因,完全代码

1、//不明白这么简单的代码为什么会出错#includeint my_atoi(char *str);int main(void){char a[]=" 12345";int b=0;b = my_atoi(a);printf("%d", b);getchar();return 0;}int my_atoi(char *str){char*  p = str;//

2016-09-25 21:25:02 377

原创 关于ASCII字符的那些事儿

以下内容源于网络资源的学习与整理,如有侵权请告知删除。

2016-09-25 21:25:00 1188

原创 atoi()函数:将字符串转换成整型数

atoi()函数会检查nptr所指向的字符串,跳过字符串开头的空格字符(单个或者连续多个空格都跳过),直到遇上数字或正负号才开始做转换。当再次再遇到非数字或者字符串结束标志('\0')时才结束转化,并将转换后的整型数返回。如果第一次遇到的就是字符,则返回一个0值。比如“a245”返回0,“45a2”返回45,“345a”返回345……C语言有atoi、atol、atof等库函数,可分别把ASCII编码的字符串转化为int、long、float类型的数字。这里讲述atoi()函数的内容,另外两个类似。...

2016-09-25 21:24:57 1479

原创 main函数的参数

摘自:http://bbs.csdn.net/topics/210046601前面介绍的main函数都是不带参数的,因此main后的括号都是空括号。实际上,main函数可以带参数,这个参数可以认为是main函数的形式参数。C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为:main(argc,argv)。C语言还规定a

2016-09-25 21:24:54 1344 1

原创 C库中的输入函数、输出函数

关于这些C库输入函数、输出函数的用法,可以在命令行输入“man3xxx”来查询。把存储在计算机中的二进制格式的数值,按照转换说明,转换成一系列字符(一个字符串)以便于显示,如01001100(76),%d说明将之转换成字符7和6,并显示为76。函数返回所打印的字符的数目。它针对所有的打印字符,包括空格和不可见的换行字符。常见的转换说明有%d,%s(字符串),%c(字符);读取输入的字符,并将输入的字符按照格式说明进行转换。该函数使用指向变量的指针作为参数。这两个函数是面向字符。...

2016-09-25 21:24:52 1359

转载 VS2015的安装与使用

编写源文件:这是编程的主要工作,我们要保证代码的语法100%正确,不能有任何差错;编译:将源文件转换为目标文件;链接:将目标文件和系统库组合在一起,转换为可执行文件;运行:可以检验代码的正确性。不过 VS 提供了一种更加快捷的方式,可以一键完成编译、链接、运行三个动作,点击菜单栏中的“运行”按钮,或者按下F5键就能做到这一点。不过如果我们的代码中没有添加getchar();语句,点击“运行”按钮,或者按下F5键后程序依然会一闪而过,只能看到一个“黑影”。如果想让程序自动暂停,可以按下。

2016-09-25 21:24:49 42159 1

原创 位操作

#include#include#define SHIFT 5#define MASK 0x1Fvoid set(int n,int *arr){int index_loc,bit_loc;index_loc = n >> SHIFT;bit_loc = n & MASK;arr[index_loc] |=1}void clear(int n,int *arr){i

2016-09-25 21:24:47 464

原创 文件操作

1、main(){    int n;    FILE *fp =fopen("C:\\Users\\Horrobo\\Desktop\\Algorithm\\data.txt","w");   assert(fp);    for (n = 1; n <=size; n++)      num[n] = n;   srand((unsigned)time(NULL))

2016-09-25 21:24:44 297

原创 srand函数简介

srand函数是随机数发生器的初始化函数。原型:void srand(unsigned seed);用法:它需要提供一个种子,这个种子会对应一个随机数,如果使用相同的种子后面的rand()函数会出现一样的随机数。如:srand(1); 直接使用1来初始化种子。不过为了防止随机数每次重复,常常使用系统时间来初始化,即使用time函数来获得系统时间,它的返回值为从 00:00:00 GM

2016-09-25 21:24:41 3448

原创 static和extern的用法总结

static用法见:1、http://www.cnblogs.com/yezhenhan/archive/2011/10/31/2229724.html2、http://www.52rd.com/Blog/Detail_RD.Blog_imjacob_5297.htmlextern用法:1、http://blog.csdn.net/cameracanon/article/details/

2016-09-25 21:24:38 550

转载 bitmap算法

http://www.cnblogs.com/dyllove98/archive/2013/07/26/3217741.html

2016-09-25 21:24:35 390

原创 matlab中二维插值函数interp2的使用

暂无!

2016-09-25 21:24:17 40479 2

原创 关于scanf和&的问题

简单地说,如果使用scanf()把一个字符串读进一个字符数组中,不能使用&;读取其他基本变量类型时,在变量名之前添加&。如以下代码:int age;char pet[30];scanf("%s", pet);scanf("%d", &age);

2016-09-25 21:24:14 1139

原创 从0-1背包问题学习回溯法、分支界限法、动态规划

一、0-1背包问题的描述下面将使用回溯法、分支界限法、动态规划法来分析和解决此问题。二、算法分析以及代码1、回溯法(1)算法步骤2、分支界限法3、动态规划

2016-09-25 17:08:40 2336 6

原创 简单的深度优先遍历和广度优先遍历

代码来源于《啊哈!算法》。1、深度优先遍历:#includeint book[101],n, e[1001][1001], sum;void DFS(int cur){ int h; sum++; printf("%d ", cur); if (sum == n) return; for (h = 1; h <= n; h++) if (book[h] == 0 &

2016-09-25 15:35:13 972

原创 二进制、十进制、其他进制之间的转换

2016-09-25 10:59:07 394

原创 最小生成树和最短路径

一、概念的理清1、图分为连通图和非连通图,我们一般讨论连通图。带权的图叫做网。2、连通图的生成树:(1)包含图的所有的n个顶点;(2)只有n-1条边,且这n-1条边足以构成一棵树;3、最小生成树:构造连通网的生成树,且代价最小。简单理解,就是连通所有的点,而且权值总和最小的生成树。4、最短路径:两点之间权值总和最小的路径。二、最小生成树常用算法1、P算法:2、K

2016-09-24 11:09:44 1024

原创 树的遍历和图的遍历的异同

一、认识的理清1、 首先,应该认识到“深度优先”和“广度优先”是算法思想,而递归是实现“深度优先”的一种方法(深度优先可以非递归实现);2、 其次,深度优先搜索也叫深度优先遍历(DFS,Depth_Fisrt_Search,这么低级的概念也需要记录,不过我的确纠结过这两个称呼有啥区别)。3、 最后,遍历的目的是把节点按照一定的规则排成线性序列。二、图的遍历1、深度优先遍

2016-09-24 10:39:52 5220

转载 一段采用链地址法解决冲突的Hash代码

/*typedef struct linkList { int data; int index_nums; struct linkList *ptr;}linkList;void hashInsert(int i, int val, int hashSize, linkList *hashT) { int tmp_val; (val < 0) ? (tmp_val = (-1

2016-09-24 09:37:48 1225

原创 单链表的头插法和尾插法实现代码(无头结点)

/*头指针,可以发现head是赋值为NULL,而不是head->next*///-----------------头插法-------------------node *head, *p;head = NULL;while (……){ p = (node *)malloc(……); p->data = ……; p->next = head;//此时第一个p的next指针是NULL,

2016-09-22 22:17:54 2993

转载 运算符的优先级

[ ] > * ,如int *p[5]++>* ,如*p++,则是p++,然后再*p

2016-09-21 20:19:32 548

原创 位操作实现加减乘除

整理于1、http://www.cnblogs.com/sunchaosailor/archive/2012/04/02/2429657.html            2、http://blog.chinaunix.net/uid-28499588-id-3488112.html一、常见功能的位操作实现:(1)常用的等式:-n = ~(n-1) = ~n+1;(2)获

2016-09-21 17:34:21 1266

原创 “指针+1”的理解

对指针加1,等价于对指针的值加上它所指向的对象的数据类型的字节大小。比如:int num[3];int* p;p = &num[0];//假如 &num[0]=12,则p=12;p++;//此时p!=13,而是p = 12 + sizeof(int);struct node *p;p++;//假如原始p=12,则此时p!=13,而是p = 12 + sizeof(struct

2016-09-21 11:31:44 17835 2

原创 原码、反码、补码,以及负数的位操作

原码:将符号位数码化了的数,其中“+”用0表示,“-”用1表示。反码:正数的反码表示与原码表示一样;负数的反码表示是原码表示的符号位不变,数值位逐位取反。补码:正数的补码表示与原码表示一样;负数的补码表示是原码表示的符号位不变,数值位逐位取反后最低位加1(反码表示最低位加1)。例: [+63]  原=0011  1111       反=0011  1111

2016-09-20 22:15:43 2214

原创 异或运算交换两个整数

异或运算有两个特性:1、一个数异或本身恒等于0,如5^5恒等于0;2、一个数异或0恒等于本身,如5^0恒等于5。基于此,交换操作如下:a=a^b;b=b^a;a=b^a;

2016-09-20 11:31:00 707

原创 基本数据结构:树(tree)

略。

2016-09-15 22:54:06 2019

空空如也

空空如也

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

TA关注的人

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