自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 常量指针和指针常量

指针常量和常量指针前段时间一直在敲代码,没什么时间总结。趁着今天休息,小小的总结了一下指针常量和常量指针的内容。指针常量和常量指针这2个名词相当的绕口,但如果好好的理解它们的区别,要分别出来还是挺容易的。const关键字首先谈谈const这个关键字的作用,在命名一个变量的时候,前面加上const关键字的话(用const修饰的变量名),在程序运行的过程中,就不可以通过这个变量名去修改它所

2015-05-31 15:01:40 453

原创 【l练习代码】有序二叉树的操作

主要实现功能为:增加节点,计算二叉树节点的个数,删除二叉树指定的节点,镜像二叉树的实现(变成镜像二叉树后不再是有序二叉树,所以不能删除节点)。最近学习中发现二叉树还是挺有意思的,上网看了下二叉树的操作,发现比我想象中的要多得多,不仅仅是二叉树的增删改查,但有些的确是有难度,虽然想好好掌握以下,但暂时还是把精力放到能短时间领悟的知识上。#include #include typ

2015-05-30 15:29:58 617 4

转载 【算法】1 由插入排序看如何分析和设计算法

插入排序及其解决思路算法的作用自然不用多说,无论是在校学生,还是已经工作多年,只要想在计算机这条道路走得更远,算法都是必不可少的。就像编程语言中的“Hello World!”程序一般,学习算法一开始学的便是排序算法。排序问题在日常生活中也是很常见的,说得专业点:输入是:n个数的一个序列a1,a2,...,an−1,an> 输出是:这n个数的一个全新的序列a,1,a,2,

2015-05-29 23:00:21 467

原创 【补充】递归实现单向链表逆转

同样是单向链表的逆转,换了个方法实现。分别用递推和递归的方式实现,但感觉在这里递归和递推效率上相差不多,要是链表太长的话,递归有可能会引发段错误或者栈溢出(进去就出不来了)。思路比昨天清晰多了,但没事去逆转一个单向链表,还真是有点蛋疼的感觉。#include #include //定义节点的数据类型typedef struct _node{ int data; //指向

2015-05-28 22:35:25 605

原创 【数据结构练习】单向链表实现、链表逆序实现

单向链表逆序实现,感觉略微繁琐,还有点啰嗦。但智商是硬伤,暂时想不到更好的算法。

2015-05-27 22:57:33 647

原创 【数据结构练习】基于链表结构实现的队列

基于链表结构实现的队列,特点是先进先出,由于是链表结构实现了,所以理论上队列不会为满。

2015-05-27 22:21:50 441

原创 【数据结构练习】基于线性结构的队列

普通的练习代码#include #include typedef struct _queue{ int *arr; int cap; //容量 int size; //该队列中存储有效数据的个数 int front; //指向队列的前端 int back; //指向队列的后端}Queue;//创建队列Queue *queue_create(int cap)

2015-05-26 23:11:09 344

原创 【数据结构练习】二叉树的实现

普通的二叉树代码/* 二叉树的实现*/#include #include //定义一个节点的结构体typedef struct _node{ int data; //节点需要保存的数据 struct _node *p_left; //指向左下方的节点(后继元素) struct _node *p_right; //指向右下方的节点(后继元素)}Node;

2015-05-26 23:06:41 401

原创 基于顺序存储结构的堆栈实现

练习代码,基础中的基础,就不多解释了/* 基于顺序存储结构的堆栈实现*/#include #include typedef struct _stack{ //存储空间的首地址 int *p_arr; //存储空间的大小 int size; //记录栈顶的位置 int top;}Stack;//创建一个栈Stack* create_stack

2015-05-25 23:19:49 589

原创 【随堂笔记】数据结构基础

数据结构1.1 基本概念       在计算机中,数据结构就是指 计算机中描述和存储数据的方式,主要是描述数据元素之间的逻辑关系以及在计算机的存储形式。       通常情况下,数据结构的选择会影响到程序的运行效率(时间复杂度)以及程序的存储效率(空间复杂度)。       计算机程序 = 数据结构 + 算法 1.2 基本分类/层次结构(1)逻辑结构 - 抽象层  

2015-05-25 23:14:13 682

原创 【归纳总结】静态局部变量

浅谈静态局部变量在学习静态变量中,我总结出3个会经常遇到的问题1. 为什么静态局部变量的生命周期和全局变量一样都是整个程序执行过程,那为什么不能在其它的函数中访问这个静态局部变量?2. 如果一个带有静态局部变量的函数被调用,不是每次都执行一次静态局部变量的声明代码吗?那为什么说静态局部变量只初始化一次呢?3. 既然说静态局部变量的生命周期是整个执行过程,那如何在它的作用域外使用它呢

2015-05-24 14:17:21 820

原创 【归纳总结】标C的文件操作

今天就不归纳指针的内容了,再研究指针的问题我话要晕死。今天就把前天关于文件IO的操作整理了下。文件与操作文件里采用二进制方式记录数字,文本文件里的所有二进制数据都来自于字符,文本文件以外的所有文件叫二进制文本。所有文件都可以采用二进制方式进行操作给机器用的用二进制方式记录,给人用的用文本方式记录。文件操作步骤1.打开文件(fopen)2.操作文件(fread/fwrite)

2015-05-23 21:17:01 525

原创 【课外作业】约瑟夫出圈问题

经典的约瑟夫出圈问题,具体的就不多说了,由于是用char类型的变量,所以最多只支持128个囚犯的圈圈。(能节省的地方该节省,我是绿色主义者)#include int main(){ //一共有多少人 char size = 0; //数到第几个人,由于数组的第一个元素为0,所以从-1开始 char who = -1; //间隔多少人 char how = 0; //

2015-05-23 21:15:20 808

原创 【课堂练习】五子棋逻辑代码

课堂上完成的五子棋逻辑代码,主要功能如下1:绘制地图使用一个16*16的二维数组代表地图,X表示黑子,O表示白子,没有棋子的地方用*表示,由于坐标范围不超过128,所以使用了char数据类型足以2:下棋通过控制台输入坐标,梅花间竹的给二维数组相应的下标的元素赋值3:判断胜负最麻烦的功能,最简单的方法是葱二维数组的第一个元素开始遍历,通过对应关系找出是否存在有5个连续的颜色相

2015-05-23 18:40:07 2191

原创 【归纳总结】函数指针和回调函数

函数指针和回调函数函数指针在C语言中,函数也有地址,而函数名称就可以用来表示函数的地址,既然有地址,那就代表可以用一个指针变量来存储这个地址,函数指针就是用来记录函数的地址。 例 一:#include void func(void){ printf("HelloWorld\n");} int main(){ printf("func==

2015-05-23 01:53:32 441

原创 【课外作业】二维双向链表练习代码

经典的学生管理项目准备来临,为了能方便存储学生信息,利用课余时间尝试写出的一个二维链表,但由于实现函数功能的时候,并没有考虑到如何把链表存储的信息写到文件里,更别提把信息读回到链表中,而且查找功能也并不满意,很多都是想到的时候在改,本来打算改进一下函数的实现的,但是时间实在不够用,只能这样了。(本来打算后来再不会注释的,但是实在懒,还是算了)/* 练习代码: 建立一个二维双向

2015-05-21 22:59:44 1054

原创 【总结归纳】指针数组和数组指针

指针数组和数组指针在刚接触C语言的时候,指针数组和数组指针往往分不清楚。下面就研究一下怎么区分它们和怎么理解它们。指针数组指针数组中的每个存储区是一个指针类型的存储区。用我自己的话描述就是存放指针变量的数组。现在先看看指针数组是怎么声明的。 例 一: int num[3];          //存放整型变量(int)的数组,num是数组名字,[3]是数组里存放元素的个

2015-05-21 22:28:45 371

原创 【总结归纳】一级指针和二级指针的使用

(如有不合理的地方,欢迎纠正)一级指针的使用在讨论指针的使用前,先重温一下函数的概念。在C语言中可以采用分组方式管理程序中的语句,我们把每个分组叫做一个函数。函数调用语句可以在程序执行过程中产生函数调用关系,但是一般情况下,一个函数不能使用其他函数的存储区如果函数被分配了多段时间则不同段时间内使用不同的存储区。如果要实现跨函数使用存储区,这时候就比需要用到指针。例一:#includ

2015-05-20 22:08:08 1557 1

原创 【随堂笔记】指针变量

(在整理笔记的时候同时加上了本人的见解,也用了自己的语言去描述某些难理解的地方,如有BUG,欢迎纠正)指针变量什么是指针变量在32位的平台下,最大内存为4G,这些内存被分为n个字节,而每个字节都对应着唯一的整数编号,这个整数编号称为地址,4G大小的内存,编号从0到4G-1。同时地址也称为指针。指针变量就是用来记录地址数据,如果一个指针变量中记录了一个存储区的地址则可以使用这个指针变

2015-05-19 22:20:10 460

原创 【随堂笔记】变量与赋值

变量与赋值变量的存储方式程序中使用的所有数字必须记录在内存里计算机内存由大量字节构成,每个字节可以单独记录一个数字每个字节有一个编号,不同字节的编号不同。这个编号叫做字节的地址所有字节的地址从0开始向上递增内存中几个相邻的字节可以合并成一个整体用来记录一个数字我们可以把内存中用来记录一个数字的所有字节称为一个存储区一个存储区只能用来记录一种类型的数字存储区也有地址,这个地址就是内部包含的所

2015-05-18 22:48:08 737

转载 大小端模式详解

int i=1;  char *p=(char *)&i;       if(*p==1)                printf("1");      else            printf("2");          大小端存储问题,如果小端方式中(i占至少两个字节的长度)则i所分配的内存最小地址那个字节中就存着1,其他字节是0.大端的话则1在i的最高地址字节处存放

2015-05-17 10:17:54 733

原创 新开的博客,先打个招呼好了

#include int main*(){ printf("HELLO WORLD\n"); return 0;}

2015-05-13 23:14:27 399

空空如也

空空如也

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

TA关注的人

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