线性表5 – 数据结构和算法10
线性表5让编程改变世界Change the world by program头指针与头结点的异同上节课我们提到了,头结点的数据域一般不存储任何信息,谁叫它是第一个呢,有这个特权。拿个小旗子即可:头指针与头结点的异同那有童鞋就疑惑了,既然头结点的数据域不存储任何信息,那么头指针和头结点又有何异同呢?头指针头指针是指链表指向第一个结点的指针,若链表有头结点,则是
策略和技术
2014年06月07日
线性表2 – 数据结构和算法07
线性表2让编程改变世界Change the world by program线性表的抽象数据类型上节课我们讲到了线性表的定义,讲到了所谓抽象数据类型就是把数据类型和相关操作捆绑在一起。那么我们接下来分析一下,线性表应该有什么样的相关操作呢?还是回到小甲鱼组织大家春游的例子,小甲鱼把鱼油们按照规律安排成一队,并且是长期使用这样的顺序排队,大家只需要记住自己的前驱鱼
策略和技术
2014年06月07日
时间复杂度和空间复杂度3 – 数据结构和算法05
时间复杂度和空间复杂度3让编程改变世界Change the world by program函数调用的时间复杂度分析如果我们把问题再实际化一点,大家是否能自己正确的分析出来呢?我们来看下边这个例子:int i, j;for(i=0; i 函数体是打印这个参数,这很好理解。function函数的时间复杂度是O(1),所以整体的时间复杂度就是循环的次数O(n)
策略和技术
2014年06月07日
时间复杂度和空间复杂度2 – 数据结构和算法04
时间复杂度和空间复杂度2让编程改变世界Change the world by program算法时间复杂度我们说好的时间复杂度和空间复杂度呢?历来大学老师在讲解这两个概念,都是直接登堂入室,导致八成学生对概念理解不深刻,或者说只是硬背起来而已。为了让大家能够更好地接受这两个比较重要的概念,我们有了上一讲的准备环节。这一讲我们直接切入正题,介绍计算复杂度的攻略,
策略和技术
2014年06月07日
时间复杂度和空间复杂度1 – 数据结构和算法03
时间复杂度和空间复杂度1让编程改变世界Change the world by program算法效率的度量方法上一讲中我们提到设计算法要尽量的提高效率,这里效率高一般指的是算法的执行时间。那么我们如何来度量一个算法的执行时间呢?所谓“是骡子是马拉出来遛遛”,比较容易想到的方法就是我们把算法跑若干次,然后拿个“计时器”在旁边计时。这种事后统计方法看上去的确不错,
策略和技术
2014年06月07日
绪论 – 数据结构和算法01
数据结构绪论让编程改变世界Change the world by program数据结构和算法绪论数据结构和算法这门计算机必修课历来无论在哪个学校,都是无比乏味和催人入睡的。但是,小甲鱼决定要投入大量的精力来将这门课程打造成有屎以来最为华丽的,最为欢乐地,最为图文并茂的课程!因为,在中国,有一句古训:No picture you say a J8 a !鉴于本
策略和技术
2014年06月07日
位运算02 – 零基础入门学习C语言65(完)
第十二章:位运算02让编程改变世界Change the world by program“取反”运算符(~)~是一个单目(元)运算符,用来对一个二进制数按位取反,即将0变1,将1变0。例如,~025是对八进制数25(即二进制数00010101)按位求反。例如:“取反”运算符左移运算符(左移运算符是用来将一个数的各二进制 位全部左移若干位。例如:a =若a
策略和技术
2014年06月08日
位运算01 – 零基础入门学习C语言64
第十二章:位运算01让编程改变世界Change the world by program位运算概念位运算是指按二进制位进行的运算。因为在系统软件中,常要处理二进制位的问题。例如:将一个存储单元中的各二进制位左移或右移一位,两个数按位相加等。c语言提供位运算的功能,与其他高级语言(如PASCAL)相比,具有很大的优越性。位运算符和位运算位运算符和位运算(1)位
策略和技术
2014年06月08日
文件操作03 – 零基础入门学习C语言62
第十一章:文件操作03让编程改变世界Change the world by program字符串读写函数:fgets和fputsfgets函数函数调用形式如:fgets(str,n,fp);函数作用:从fp所指的文件中读出n-1个字符送入字符数组str中,因为在最后加一个’?’。返回值:str的首地址fputs函数函数调用方式:fgets(“FISH
策略和技术
2014年06月08日
文件操作04 – 零基础入门学习C语言63
第十一章:文件操作04让编程改变世界Change the world by program格式化读写函数: fprintf()和fscanf()函数调用:fprintf ( 文件指针,格式字符串,输出表列);fscanf ( 文件指针,格式字符串,输入表列);函数功能:从磁盘文件中按格式读入或输出字符。fprintf(fp, “%d,%6.2f”, i,
策略和技术
2014年06月08日
文件操作01 – 零基础入门学习C语言60
第十一章:文件操作01让编程改变世界Change the world by programC文件概述所谓“文件”是指一组相关数据的有序集合。这个数据集有一个名称,叫做文件名。实际上在前面的各章中我们已经多次使用了文件,例如源程序文件、目标文件、可执行文件、库文件 (头文件)等。文件通常是驻留在外部介质(如磁盘等)上的,在使用时才调入内存中来。从不同的角度可对文件作
策略和技术
2014年06月08日
结构体与共用体06 – 零基础入门学习C语言58
第十章:结构体与共用体06让编程改变世界Change the world by program共用体共用体的概念:使几个不同的变量共占同一段内存的结构称为 “共用体”类型的结构。定义共用体类型变量的一般形式为:union 共用体名{成员表列}变量表列;例如:union data{int i;char ch;float f;}a, b, c;
策略和技术
2014年06月08日
结构体与共用体07 – 零基础入门学习C语言59
第十章:结构体与共用体07让编程改变世界Change the world by program用typedef定义类型用typedef声明新的类型名来代替已有的类型名声明INTEGER为整型typedef int INTEGER声明结构类型typedef struct{int month;int day;int year;}DATE;声明NUM为整
策略和技术
2014年06月08日
结构体与共用体04 – 零基础入门学习C语言56
第十章:结构体与共用体04让编程改变世界Change the world by program链表例题讲解链表例题今天,我们将以图文并茂的方式来展示链表的具体创建过程!!链表原理我们约定学号不会为零,如果输入的学号为0,则表示建立链表的过程完成,该结点不应连接到链表中。如果输入的p1->num不等于0,则输入的是第一个结点数据(n=1),令head=p1,即把p
策略和技术
2014年06月08日
结构体与共用体01 – 零基础入门学习C语言53
第十章:结构体与共用体01让编程改变世界Change the world by program概述问题定义:有时需要将不同类型的数据组合成一个有机的整体,以便于引用。如:一个学生有学号/姓名/性别/年龄/地址等属性int num;char name[20];char sex;int age;int char addr[30];定义结构体类型变量定义一
策略和技术
2014年06月08日
结构体与共用体02 – 零基础入门学习C语言54
第十章:结构体与共用体02让编程改变世界Change the world by program结构体变量的初始化我们可以这么对结构体进行初始化!例子01:includevoid main(){struct student /定义结构/{ int num; char *name; char
策略和技术
2014年06月08日
预处理03 – 零基础入门学习C语言52
第九章:预处理03让编程改变世界Change the world by program文件包含尽管我们很熟悉,但对文件包含命令还要说明以下几点:一个include命令只能指定一个被包含文件,若有多个文件要包含,则需用多个include命令。文件包含允许嵌套,即在一个被包含的文件中又可以包含另一个文件。包含命令中的文件名可以用双引号括起来,也可以用尖括号括起来。例
策略和技术
2014年06月08日
预处理02 – 零基础入门学习C语言51
第九章:预处理02让编程改变世界Change the world by program带参宏定义C语言允许宏带有参数。在宏定义中的参数称为形式参数,在宏调用中的参数称为实际参数。对带参数的宏,在调用中,不仅要宏展开,而且要用实参去代换形参。带参宏定义的一般形式为:define 宏名(形参表) 字符串带参宏调用的一般形式为:宏名(实参表);例如:defi
策略和技术
2014年06月08日
预处理01 – 零基础入门学习C语言50
第九章:预处理01让编程改变世界Change the world by program预处理,其实我们很熟悉在前面各章中,已多次使用过以“# ”号开头的预处理命令。如包含命令# include ,宏定义命令# define PI 3.1415926等。在源程序中这些命令都放在函数之外,而且一般都放在源文件的前面,它们称为预处理部分。无参宏定义无参宏的宏名后不
策略和技术
2014年06月08日
指针09 – 零基础入门学习C语言49
第八章:指针09让编程改变世界Change the world by program有关指针的数据类型的小结有关指针的数据类型的小结指针运算小结一、指针变量加(减)一个整数如:p++、p–、p+i、p-i、p += i、p -= i等。二、指针变量赋值将一个变量地址赋给一个指针变量。如:p = &a; (将变量a的地址赋给p)p = array; (
策略和技术
2014年06月08日
