自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

stary_yan的博客

数据爱好者。

  • 博客(43)
  • 收藏
  • 关注

原创 [c语言]指针的思考

面向指针编程(好文!!)对于指针的思考。 http://segmentfault.com/a/1190000004200708理解: 指针本身是一个变量,有值(就是他本身的内存地址),指针可以指向别的地址。指针动态申请内存,就像在一个地址上面盖房子,就算被free掉,也只是这个房子被掀了,并不代表他本身所具有的地址变成了null。 结构体指针实际上就是一个指针,指向了结构体里面的内容,但并不能

2015-12-30 23:18:21 377

原创 队列简单操作

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。 队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素成为出队。因为队列只允许在一段插入,在另一端删除,所以只有最早进入队

2015-12-30 22:00:55 608

原创 栈操作

The stack in this exercise is implemented with link list. You should implement Three function push(), pop() and del().Push: push a number in the stack.You should think about how to construct the first

2015-12-30 21:17:09 440

原创 单向循环链表

#include <stdio.h>#include <stdlib.h>typedef struct link { int data; struct link* next;} node;void builddoublelink(node** header) { int data; printf("input data end with -1:\n");

2015-12-30 20:55:00 381

原创 frisbee(for hw)-类似单向循环链表

Jeremy最近迷上了玩飞盘,他掷飞盘的时候有一个习惯,在一叠飞盘中,从第一个飞盘(即位于顶端的飞盘)开始,从上往下依次编号为1,2,…,N。当至少还有两个飞盘的时候,Jeremy会掷出一个飞盘,然后把新的第一个飞盘放到所有飞盘的下方。输入飞盘的总数N,要求输出每次扔掉的飞盘,以及最后剩下的飞盘。Input 第一行为一个整数T(0#include <stdio.h>int main() {

2015-12-30 15:35:53 522

原创 Student Manager--关于内存申请和释放

题目内容:已知main.c文件代码,请完成StudentManager.h文件中的结构体的定义(已给出),以及相关5个函数的实现。要求,最终能够按照一定的顺序输出每个学生的学号(小于等于8位的正整数)及分数(介于1与100之间的整数)(其中学生的人数n, 1 <= n <= 20),其中按照分数从高到低输出,如果分数相同,则根据学号的大小(假定学号可以重复),学号越大的排在学号小的前面输出。每个记

2015-12-30 10:24:24 372

转载 A letter to our daughter——马克·扎克伯克

Your mother and I don’t yet have the words to describe the hope you give us for the future. Your new life is full of promise, and we hope you will be happy and healthy so you can explore it fully. You’

2015-12-29 23:14:00 948

原创 1763. 传球游戏

Time Limit: 1sec Memory Limit:32MB Description 上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意),当老师再次吹哨子时,传球停止,此时,拿着球没传出去的那个

2015-12-29 21:18:06 365

原创 DFS

2014 蓝桥杯 预赛 c/c++ 本科B组 第九题:地宫取宝(12’)X 国王有一个地宫宝库。是 n x m 个格子的矩阵。每个格子放一件宝贝。每个宝贝贴着价值标签。 地宫的入口在左上角,出口在右下角。 小明被带到地宫的入口,国王要求他只能向右或向下行走。 走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。

2015-12-27 20:25:14 429

原创 二分搜索模版

#include <stdio.h>int binsearch(int number, int *array, int length) { int low = 0, high = length; int mid = (low + length) >> 1; while (low <= high) { if (array[mid] > number) {

2015-12-27 19:04:23 854

原创 Matrix(for hw)---二分搜索

二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上

2015-12-26 14:03:01 452

原创 双向循环链表

#include<stdio.h>#include <stdlib.h>typedef struct node { int value; struct node* prev; struct node* next;}node;void print(node* first) { node *p = NULL, *q = NULL; if (first == N

2015-12-25 16:19:16 367

原创 二叉树链表实现(有bug待查)---关于二叉树的思考

使用链表实现二叉树的构造并完成中序遍历。首先在头文件中定义结点结构体如下:typedef struct node {int x;struct node* left;struct node* right;} BN;其次要实现两个函数,函数buildTree通过读入一串整数以层次优先从左到右的方式构建一个二叉树,函数outputTree输出此树的中序遍历。两个函数的原型如下:void buildTree

2015-12-25 00:38:23 598

原创 位操作

位逻辑运算符~:二进制反码或者按位取反 &:逐位比较产生一个新值。只有两个操作数的对应位都为1时结果才是1。 |位或:按位比较,有一个为1则取值为1 ^:位异或1、用法:掩码使用位和 & 就是某些位设为开(1)而某些位设置为关(0)的位组合。 用于覆盖某个变量的某些位。2、用法:打开位使用位或 | 把某个变量的特定位打开。3、用法:关闭位使用& ~把特定位关闭4、用法:转置位使用^5、用

2015-12-24 15:47:44 358

转载 sizeof与offsetof有关的结构体详解

sizeof与offsetof在程序中经常遇到,但在面试中其应用使得许多小伙伴吃闭门羹,被面试官问得哑口无言。接下来对两者的应用做详细介绍。关于sizeof定义sizeof乃C/C++中的一个操作符(operator), 简单的说其作用就是返回一个对象或者类型所占的内存字节数。(MSDN上的解释为:The sizeof keyword gives the amount of storage, in

2015-12-23 19:47:33 385

原创 编写字符小游戏——贪吃蛇程序(c语言)

#include <stdio.h>#include <string.h>#define SNAKE_HEAD 'H'#define SNAKE_BODY 'X'#define BLANK_CELL ' '#define WALL_CELL '*'void snake_move();void output();int gameove();char map[12][12] = {

2015-12-21 16:57:26 1870

原创 高精度乘法

#include <stdio.h>#include <string.h>#define max 10001int high_precision(int *sum,int *a,int *b,int a_len,int b_len){ int i,j; memset(sum,0,sizeof(sum)); int sum_len = 0 ; for(i=1;i<

2015-12-17 16:56:41 395

原创 单向链表

#include<stdio.h>#include<stdlib.h>#define ERROR 0#define OK 1typedef int status;typedef int ElemType;typedef struct Node{ ElemType data; struct Node *next;} LNode,*LinkList;void Buil

2015-12-17 16:38:06 401

原创 School idol project

Bad news! It is said that School of Software is going to be repealed because of low amount of new student. Many people says that TAs always give assignments which are too difficult to finish. Most high

2015-12-17 15:36:06 717

原创 理解sturct的内存存储

定义一个结构体类型T包含三个变量分别是double,char,和int类型。实例化一个T,输出此实例在内存中所占空间大小(使用sizeof),输出3个变量分别所占内存大小之和以及3个变量在内存中距离此实例的首地址的长度(以byte为单位)。注意3个变量必须以double,char,int的顺序排列,比如:struct T {double x;char y;int z;}根据所输出内容理解struc

2015-12-16 14:08:40 508

原创 性能评估

题目描述:Amtel has announced that it will release a 128-bit computer chip by 2010, a 256-bit computer by 2020, and so on, continuing its strategy of doubling the word-size every ten years. (Amtel released

2015-12-16 10:21:02 451

转载 python学习笔记--常见矩阵计算

python的numpy库提供矩阵运算的功能,因此我们在需要矩阵运算的时候,需要导入numpy的包。1.numpy的导入和使用from numpy import *;#导入numpy的库函数import numpy as np; #这个方式使用numpy的函数时,需要以np.开头。2.矩阵的创建 由一维或二维数据创建矩阵from numpy import *;a1=array([1,2,3])

2015-12-14 14:51:07 659

转载 python学习笔记

当作计算机使用1、SymPy有三个内建的数子类型:实数,有理数和整数。有理数类用两个整数来表示一个有理数。>>>from sympy import *>>>a = Rational(1,2)>>>a1/2>>>a*21>>>Rational(2)**50/Rational(10)**501/88817841970012523233890533447265625我们也可以有一些特殊的常数,像e

2015-12-14 14:31:19 709

原创 matlab学习笔记--图形处理

1、二维图形的绘制1、数据绘图命令-plot ①plot(y) 当y为向量时,以y的分量为纵坐标,以元素序号为横坐标,用直线依次连接数据点,绘制曲线。若y为实数矩阵,按列绘制每一列所对应的曲线,图中曲线数等于矩阵的列数。 ②plot(x,y) 若y和x为同维向量,以x为横坐标,以y为纵坐标绘制连线图。若x是向量,y是行数或列数与x的长度相等的矩阵,则绘制多条不同色彩的连线图,x被作为这些曲线的共

2015-12-13 23:58:00 1228

原创 matlab学习笔记--数值计算

1、matlab开发环境命令窗口(Command Window)MATLAB是交互式的语言,输入命令即给出运算结果。而命令窗口则是MATLAB的主要交互窗口,用于输入和编辑命令行等信息,显示结果(图形除外)。 启动平台(Launch Pad)启动平台用于启动和管理系统中安装的MATLAB系统。可以通过双击来启动相应的选项。工作空间(Workspace)工作空间用于保存MATLAB变量的信息。在工

2015-12-13 23:22:22 2865

原创 watcher(贪心算法)

恶魔猎手尤迪安野心勃勃.他背叛了暗夜精灵,率深藏在海底的那加企图叛变:守望者在与尤迪安的交锋中遭遇了围杀.被困在一个荒芜的大岛上。为了杀死守望者,尤迪安开始对这个荒岛施咒,这座岛很快就会沉下去,到那时,岛上的所有人都会遇难:守望者的跑步速度,为17m/s,以这样的速度是无法逃离荒岛的。庆幸的是守望者拥有闪烁法术,可在1s内移动60m,不过每次使用闪烁法术都会消耗魔法值10点。守望者的魔法值恢复的速度

2015-12-13 15:26:14 389

原创 color

Ziyao has a big drawing board with N * M squares. At the beginning, all the squares on the board are white, represented by the number 0. We can see the 4 * 4 whilte drawing board is:0000000000000000One

2015-12-13 14:55:30 296

转载 文章标题

基本定义:结构体,通俗讲就像是打包封装,把一些有共同特征(比如同属于某一类事物的属性,往往是某种业务相关属性的聚合)的变量封装在内部,通过一定方法访问修改内部变量。结构体定义:第一种:只有结构体定义struct stuff{ char job[20]; int age; float height; }; 第二种:附加该结构体类型的“结

2015-12-12 21:44:40 253

原创 算法分析

最坏情况分析必要性许多算法在最坏情况下执行会消耗大量的时间因为算法在最佳情况下表现都相同,不必考虑难以判断“平均情况“最坏情况可以告诉我们算法性能的上限o表示法考虑当数据趋向于无穷大时,算法的效率到底有多高。(求极限)计算特性o(1) 表示一个算法运行的时间是固定的。可以省略常数项乘法原则:当一个任务的执行引起另一个任务的迭代执行,就可以相乘。常见复杂计算发生的复杂度o(1) 从

2015-12-12 21:31:34 281

原创 递归

递归包括两个过程:递推和回归。一旦递推阶段结束,处理过程就进入回归阶段,在这之前的函数调用以逆序的方式回归。尾递归 能够大量减少运行时间。 核心在于记录每一次递归后的取值。 以阶乘为例:int fact(int n) { if (n == 1 || n == 0) { return 1; } else return n * fact(n - 1

2015-12-12 21:12:21 222

原创 绝地逃生(DFS)

假设你现在被困一个神秘山洞,在几经查探之后发现很难找到出路。幸运的是,你在山洞里乱走的时候捡到了一张地图。通过这张地图,你能判断自己是否能够走出这个山洞(假设不能走对角线)。但,身为程序员的你觉得看一张大地图找路实在是浪费精力,为了保存体力在山洞中生存下去,机智的你掏出随身携带的电脑写了一段程序,让这个程序来帮你找路。地图由一个矩阵表示,矩阵的元素只含有0和1,1表示真,即那个点可以走,0表示假,即

2015-12-11 15:03:20 968

原创 合并字符串

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<malloc.h>char* join(char* a, int alength, char* b, int blength) { char* p = 0; p = malloc(alength + blength + 1);//动态申请内存 m

2015-12-10 21:10:28 534

原创 ANT(重要思想!)

一根长度为L厘米的木棒上有N只蚂蚁,每只蚂蚁要么向左走,要么向右走,速度为1厘米/秒。当两只蚂蚁相撞时,他们会同时掉头(掉头时间不计)给出每只蚂蚁距离木棒左端的距离,问多少秒后,刚好所有蚂蚁都从木棒上掉下来。N 和 L均不超过1000输入第一行两个整数,分别是N和L接下来N行,每行先是一个字符,L或R,代表向左还是向右,然后是一个整数x,代表这个蚂蚁距离木棒左端的距离。样例输入:4 10R 1R 5

2015-12-10 18:27:40 351

原创 eggs(递归)

Erin买了不少鸡蛋,她发现一天吃不完这么多,于是决定把n个同样的鸡蛋放在m个同样的篮子里,允许有的篮子空着不放,请问共有多少种不同的放法呢?注意:2,1,1和1,2,1 是同一种分法。Input 第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数m和n,以空格分开。1<=m,n<=10。Output 对输入的每组数据m和n,用一行输出相应的结果。例如:Input:4

2015-12-10 17:46:15 488

原创 归并排序(c语言)

#include <stdio.h>#include <time.h>#include <stdlib.h>#define max 10void merge_sort(int a[], int p, int r);void merge(int a[], int p, int q, int r);int main() { int array[max]; int i;

2015-12-08 23:50:07 390

原创 1137. 河床

Total: 5753 Accepted: 1736 Rating: 2.9/5.0(31 votes)Time Limit: 10sec Memory Limit:32MB Description 地理学家们经常要对一段河流进行测量分析。他们从上游开始向下游方向等距离地选择了n(≤30000)个点测量水位深度。得到一组数据d1,d2,……,dn,回到实验室后数据分析

2015-12-07 23:30:30 554

原创 八皇后问题(递归+回溯)

#include <stdio.h>int down[16] = {0};int up[16] = {0};int column[9] = {0};int sum = 0;void tryqueen(int i) { int j; for (j = 1; j <= 8; j++) { if (column[j] || down[i - j + 7] || u

2015-12-07 22:40:00 443

原创 Remove Redundant Characters

Remove all redudant chacacters in a string.For example, the input string is “abacaeedabcdcd”, the output will be “abced”.InputA string whose length is less than 100.For example:abacaeedabcdcdOutputThe

2015-12-07 13:40:18 2073

原创 拯救大兵雷诺(递归+回溯)

新晋的星灵大主教Artanis在目睹了挚友Zeratul的牺牲之后决心对抗黑暗之神Amon。为此,他首先要团结全星区所有种族的力量。坚定的盟友雷诺和他刚刚结束了Arcturus统治的Terran帝国正在遭受Amon控制的异虫的攻击,帮助他们即可在日后对抗Amon的时候获得帮助。当星灵部队抵达时,人类的战线已经崩溃,Artanis预测,如果没有星灵的帮助,人类部队将在n单位时间之后彻底战败。异虫部队在

2015-12-07 12:48:09 614

原创 JumpJump(递归)

给出一个数组,长度为n,编号为0~(n-1),接下来n行,第i行描述关于第i个位置的信息。每行先是一个数k表示从位置i-1可以跳到其他的k个位置去,之后是k个数,表示i-1号点可以跳到的位置,这些位置一定在i-1号位置之后,且从小到大排列。现在有一个小朋友,从0号位置出发,每次往他可以跳的位置跳过去,且从编号小的开始跳。如果遇到一个位置不能继续跳下去则返回之前的位置。输出一路上途径的所有点。例如,n

2015-12-03 21:14:55 918

空空如也

空空如也

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

TA关注的人

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