01 2018 档案

摘要:#include "stdafx.h" #include<stdio.h> #include<conio.h> #include<Windows.h> #include<stdlib.h> #include<assert.h> //节点类型 typedef struct Node { int dat 阅读全文
posted @ 2018-01-09 18:38 gd_沐辰 阅读(411) 评论(0) 推荐(0) 编辑
摘要:二叉树的遍历与构建 遍历(traversal)指的是对树中每个结点访问一次且仅一次。 访问(visit)是指对结点进行某种处理,比如输出结点值,查找某个(或某些)结点,计算结点的层号、高度、子孙个数等等。 注意:遍历必须按“一定的规律”进行,因为二叉树是非线性结构。 遍历方法(即规律)很多,常见的有 阅读全文
posted @ 2018-01-09 18:36 gd_沐辰 阅读(301) 评论(0) 推荐(0) 编辑
摘要:二叉树的基本概念和性质 二叉树的定义:二叉树(binary tree)也称二分树,是二元位置树。每一个结点的度至多为2。 每个结点最多有两个儿子(左儿子、右儿子) 结点的两棵子树叫做左子树和右子树 二叉树的基本性质: 1) 非空二叉树中,第i层(i≥1)上结点的个数 ni≤2i-1 2)高为k(k≥ 阅读全文
posted @ 2018-01-09 18:30 gd_沐辰 阅读(572) 评论(0) 推荐(0) 编辑
摘要:书结构的基本概念 树的定义:用于描述层次关系、分枝关系、嵌套关系的基本数据结构。(首结点没有前驱,其他结点有且只有一个前驱,或有多个后继。) 树(tree)是n(n≥0)个结点的集合 若n=0,是一棵空树(null tree) n=1,是一棵单结点树 n>1,其中一个结点是树的根结点,简称根(roo 阅读全文
posted @ 2018-01-09 18:25 gd_沐辰 阅读(738) 评论(0) 推荐(0) 编辑
摘要:表结构的类实现 前面所讲的都是c语言来介绍,下面用c++的类实例。。。 1.顺序栈类 栈类的定义 栈顶指针、栈的存储空间(成员数据) 栈的初始化、进栈函数和退栈函数(成员函数) 1)类的定义: class Cstack //定义栈类 { private: int top; //栈顶指针 elemen 阅读全文
posted @ 2018-01-09 18:22 gd_沐辰 阅读(173) 评论(0) 推荐(0) 编辑
摘要:// HashList.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include<iostream> using namespace std; struct node { int r;//行标 int c;//列标 double dat;//数据 }; 阅读全文
posted @ 2018-01-09 18:21 gd_沐辰 阅读(168) 评论(0) 推荐(0) 编辑
摘要:散列表 或称Hash表或哈希表,通过科学的取地址方式,存放数据并便于查找。由此降低地址冲突的一个数据模式。 算法的实质: 完成 元素值x—>存储地址d的变换f,即 d=f(x) (1)直接地址存储法 条件:元素取值范围与集合大小n差不多。 比如:定义数组arr[10],来存放10个自然数。 (2)散 阅读全文
posted @ 2018-01-09 18:18 gd_沐辰 阅读(223) 评论(0) 推荐(0) 编辑
摘要:字符串 简称串,是有穷字符序列。字符个数称串长,空串(null string)的长度等于0。 串常量:用一对双引号括起来的字符序列 串变量:一维字符数组 应用较广: 1.文本编辑 2.对C源程序进行编辑、编译 3.处理用户输入数据、输入命令 4.模式匹配、模式识别 串运算:插入、删除、查找、替换(有 阅读全文
posted @ 2018-01-09 18:11 gd_沐辰 阅读(261) 评论(0) 推荐(0) 编辑
摘要:稀疏矩阵的顺序存储 在工程数学上学过矩阵,有多行多列,类似于多维数组。那么又如何将矩阵中的数值转换成数组的元素? 如图,左一是一个下三角矩阵,要将不为0的数值存放到一维数值中(右一)。 其中i是原矩阵的行标,j是原矩阵的列标,k是转换后数组的下标。 一般的非0元素极少可以用压缩法存储。。。 每个非0 阅读全文
posted @ 2018-01-09 18:09 gd_沐辰 阅读(241) 评论(0) 推荐(0) 编辑
摘要:栈 只允许在同一个端点处进行插入、删除的表结构称为栈(stack) 属性: 栈顶(top)指针 栈底(bottom) 进栈(push) 退栈(pop) 特点: 后进先出。或LIFO表 (last in first out) 顺序栈的进栈、出栈算法: #define EMPTY -1 //栈空指针值 阅读全文
posted @ 2018-01-09 18:04 gd_沐辰 阅读(159) 评论(0) 推荐(0) 编辑
摘要:前面介绍过链表,本人觉得链表在运用方面比较重要,下面给出一个实例。 学生管理系统 1.实现了链表的创建,以及一些增、删、改、查的基本操作 2.对于信息的存储采用的是文件的读写。将输入的信息保存在.txt中。 // Student.cpp : 定义控制台应用程序的入口点。 // #include "s 阅读全文
posted @ 2018-01-09 18:01 gd_沐辰 阅读(185) 评论(0) 推荐(0) 编辑
摘要:数组可以当顺序表使用,这个不难。 此处讲解下链表。。。。 复习下 1.是线性表的一种存储形式 2.每个表元素对应链表的一个结点(含值域和链域) 3.值域(value field)用来存储表元素值 4.链域(link field)用来存储相邻结点的地址 5.表尾结点的链域值为空(NULL,即常数0) 阅读全文
posted @ 2018-01-09 17:58 gd_沐辰 阅读(238) 评论(0) 推荐(0) 编辑
摘要:线性表 什么是线性表? 线性表(linear list):具有n(n≥0)个数据结点(元素)的序列 A=(a1,a2,…,an)。比如:数组 表结构的主要运算:增、删、改、查。 其次还有:存取、更新、合并、分裂、复制、排序 线性表有两个存储方式:顺序存储(顺序表)、链式存储(链表) 顺序表 按结点在 阅读全文
posted @ 2018-01-09 17:49 gd_沐辰 阅读(690) 评论(0) 推荐(0) 编辑
摘要:如何去评判一个算法的高效性、可行性并是正确的? 1.评价标准 算法评价(评估,评测)称为算法分析。 可以从以下几个方面: 1)算法的正确性 2)算法的有效性 3)操作界面 4)键壮性 5)易读性和易维护性 正确性: 能满足具体问题的需求,且对所有的合法的输入数据都正确。 一个正确的算法应当对所有合法 阅读全文
posted @ 2018-01-09 17:46 gd_沐辰 阅读(475) 评论(0) 推荐(0) 编辑
摘要:什么是数据? 1.数据是对客观事物的描述形式和编码形式的统称。 2.是计算机算法和程序的处理对象(输入数据)和计算结果(输出数据) 什么是数据结构? 将一些结点通过某种关系进行相关联,形成一个整体。 数据结构的种类: 下列所讲的数据结构一般是指逻辑结构(在计算机不一定按这种结构存储,非物理结构)。如 阅读全文
posted @ 2018-01-09 17:22 gd_沐辰 阅读(189) 评论(0) 推荐(0) 编辑
摘要:从功能来看,有些程序非常相似,只是处理对象(数据)的类型不同 例 void sortArray(int b[],int len); void sortArray(double b[],int len); 可以考虑提供具有相同逻辑功能的程序,而将数据类型作为参数——类属编程 C++中的模板:类模板和函 阅读全文
posted @ 2018-01-09 17:03 gd_沐辰 阅读(222) 评论(0) 推荐(0) 编辑
摘要:程序执行中需要处理异常: 1.动态分配空间时可能不会成功 2.打开文件可能会失败 3.除法运算时分母可能为0 4.整数相乘可能溢出 5.指针可能越界等情况 异常处理方法一: 1.使用选择语句(if…else…) 2.判断异常情况,即时处理 3.正常程序流程和异常处理语句混在一起 4.程序员往往无法专 阅读全文
posted @ 2018-01-09 17:01 gd_沐辰 阅读(204) 评论(0) 推荐(0) 编辑
摘要:文件是什么? 文件是外存数据的组织单位。一个文件对应一批存放在外存(如硬盘、软盘、U盘)的数据,计算机以及计算机的使用者通过文件名实现对文件的操作(如复制、删除、内容修改)。 C++把一个文件看成是一个字节序列。 C++的文件类型 1.文本文件(也称ASCII文件)。文件中每个字节的内容是ASCII 阅读全文
posted @ 2018-01-09 16:55 gd_沐辰 阅读(220) 评论(0) 推荐(0) 编辑
摘要:多态性:在程序多次执行时,某一确定位置的函数调用执行了不同的函数体。 虚函数 虚函数的定义 1.在成员函数(非静态、非构造函数)原型前加上关键字virtual 2.类的虚函数通过继承向下传递,在派生类中既可以直接继承也可以重定义,重定义时函数原型前可以省略virtual,也可以改变访问模式(不提倡) 阅读全文
posted @ 2018-01-09 16:53 gd_沐辰 阅读(216) 评论(0) 推荐(0) 编辑
摘要:继承和派生 1.继承允许以现有的类为基础来构建新类 2.新类(派生类)继承现有类(基类)的属性和行为 3.派生类可以修改(改变权限或重定义)基类的属性和行为 4.派生类可以增加新的属性和行为 5.派生类对象也是基类对象 6.派生类对象和基类对象可以被统一管理 继承的三种方式 1.公有继承(publi 阅读全文
posted @ 2018-01-09 16:52 gd_沐辰 阅读(184) 评论(0) 推荐(0) 编辑
摘要:C++的所有运算符都可以被重载吗? . .* :: ?: sizeof 不能被重载 什么情况下需要考虑运算符重载? 当要把自定义类的对象用作运算符的操作数时,可以被重载的运算符中只有赋值运算符 = 和地址运算符 & 可直接用于对象的操作 运算符重载函数如何定义? 保持运算符的原有属性,作为类的成员函 阅读全文
posted @ 2018-01-09 16:51 gd_沐辰 阅读(190) 评论(0) 推荐(0) 编辑
摘要:如果某个(些)外部函数需要直接访问类的数据成员,怎么办? 方法一:数据公有 方法二:友元 友元函数 1.友元函数是一般函数或其它类的成员函数 2.友元函数具有访问类的所有成员的权限 3.声明友元函数的方法:friend + 函数原型 4.除非能带来极大的便利,否则不要使用友元 示例:使用友元函数修改 阅读全文
posted @ 2018-01-09 16:50 gd_沐辰 阅读(150) 评论(0) 推荐(0) 编辑
摘要:this指针 1.一个类的多个对象各自拥有类的数据成员的一个副本 2.类的成员函数则被其所有对象共享 3.一个类的不同对象响应相同的消息时,调用的是同一个函数 4.每个对象都有一个指向自身的this指针 5.对象调用成员函数时会将自己的this指针传递给成员函数(隐含参数) 6.成员函数访问对象的所 阅读全文
posted @ 2018-01-09 16:49 gd_沐辰 阅读(151) 评论(0) 推荐(0) 编辑
摘要:类(class)——是抽象数据类型,实现了对数据和函数的封装(必须通过接口函数才能操作数据) 数据成员 1.可以定义各种类型的变量、指针、数组等,甚至是其他类的对象 2.在类的定义中数据成员不能赋初值 3.数据成员一般放在private部分 4.数据成员也可以放在public部分,但不提倡 成员函数 阅读全文
posted @ 2018-01-09 16:48 gd_沐辰 阅读(263) 评论(0) 推荐(0) 编辑
摘要:结构类型定义的典型格式: struct <结构名> { <成员列表> }; 例子: struct student { int num; char name[20]; char sex; float score; }; 结构变量声明的典型格式: <结构名> <变量列表> ; 例子: student s 阅读全文
posted @ 2018-01-09 16:47 gd_沐辰 阅读(272) 评论(0) 推荐(0) 编辑
摘要:指针:具有确定属性的地址 属性决定了以该地址为起始地址的存储空间(数据单元)大小以及可以存放什么类型的数据 指针变量:可以存放指针的变量 指针的定义 指针变量声明 int *myPtr; 说明了一个指向int类型的指针变量myPtr int *myPtr1,i,*myPtr2, j; 可以说明指向任 阅读全文
posted @ 2018-01-09 16:46 gd_沐辰 阅读(208) 评论(0) 推荐(0) 编辑
摘要:一维数组声明 <存储类别> <元素类型> <数组名>[<元素个数> ]; 如: int a[10]; static double b[20]; 说明 1.一组连续的存储单元 2.具有相同的名字和类型 3.第一个元素的序号是 0 4.10 个元素的数组a: a[0], a[1] ... a[9] 初始 阅读全文
posted @ 2018-01-09 16:45 gd_沐辰 阅读(228) 评论(0) 推荐(0) 编辑
摘要:函数 模块化。C++的基本程序单位。 所有在函数体中说明的变量都是局部变量(仅在定义的函数中有效) 参数 函数间传递信息 局部变量 优点 分而治之(有利于程序开发) 避免代码重复,软件重用(重用已有的函数来构造新的程序) 抽象-隐蔽内部的细节 示例:寻找三个数中最大值和最小值 #include <s 阅读全文
posted @ 2018-01-09 16:39 gd_沐辰 阅读(186) 评论(0) 推荐(0) 编辑
摘要:程序的基本控制结构 顺序结构:常用的语句有表达式语句和复合语句。 选择结构:if语句、if-else语句、switch语句。 循环结构:while语句、do-while语句、 for语句。 其它:空语句、continue语句、break语句 、goto语句、return语句。 表达式语句示例: a 阅读全文
posted @ 2018-01-09 16:37 gd_沐辰 阅读(172) 评论(0) 推荐(0) 编辑
摘要:输入:从输入设备(如键盘、磁盘等)向计算机输入数据 输出:从计算机向输出设备(如显示器、打印机等)输出数据 通过流对象cin、cout分别进行流读取和流插入 字符输入输出函数包括: 字符输出函数 putchar 字符输入函数 getchar 注意:每执行一次只输入(输出)一个字符。 输出函数 put 阅读全文
posted @ 2018-01-09 16:34 gd_沐辰 阅读(377) 评论(0) 推荐(0) 编辑
摘要:举例 (int)3.14 将3.14转换成整数3 (double)3 将3转换成双精度浮点数 3.0 double(3) 将3转换成双精度浮点数 3.0 (double)(3) 将3转换成双精度浮点数 3.0 以上的转换是强制类型转换,是一种运算 注意: 如果f是float类型的变量,(int)f把 阅读全文
posted @ 2018-01-09 16:29 gd_沐辰 阅读(295) 评论(0) 推荐(0) 编辑
摘要:变量与常量的区别: 常量 定义 程序运行过程中,其值不能被改变的量 分类 整型常量 实型常量 字符型常量 布尔型常量(false,true) 符号常量:用一个标识符代表的常量 如:#define PI 3.14 整型常量 表示形式 十进制整数:由数字0~9组成,除0外不能以0开始 八进制整数:以数字 阅读全文
posted @ 2018-01-09 16:26 gd_沐辰 阅读(411) 评论(0) 推荐(0) 编辑
摘要:C++的字符集和关键字 字符集: 由52个字母、10个数字、30个特殊字符组成。所有C++程序(忽略换行符、制表符、注释和字符串常量中的内容)都由字符集中的字符按一定规则构成 C++标识符是满足如下条件的一串字符 1.由一个字母 ( a ~ z , A ~ Z ) 或下划线 ( _ )开头; 2.其 阅读全文
posted @ 2018-01-09 16:22 gd_沐辰 阅读(412) 评论(0) 推荐(0) 编辑
摘要:什么是计算机系统? 机器系统、能接收和存储信息、能对数据进行处理和计算、能输出结果。 计算机系统的组成: 硬件(主板、CPU、内存、硬盘、显示器、键盘)+软件(程序和文档)。 硬件分类与功能 CPU--运算器:对数据进行算术运算和逻辑运算。 控制器:按程序的要求,控制计算机各功能部件协调一致地动作。 阅读全文
posted @ 2018-01-09 16:21 gd_沐辰 阅读(290) 评论(0) 推荐(0) 编辑