摘要: #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_沐辰 阅读(408) 评论(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_沐辰 阅读(735) 评论(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_沐辰 阅读(237) 评论(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_沐辰 阅读(473) 评论(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_沐辰 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 继承和派生 1.继承允许以现有的类为基础来构建新类 2.新类(派生类)继承现有类(基类)的属性和行为 3.派生类可以修改(改变权限或重定义)基类的属性和行为 4.派生类可以增加新的属性和行为 5.派生类对象也是基类对象 6.派生类对象和基类对象可以被统一管理 继承的三种方式 1.公有继承(publi 阅读全文
posted @ 2018-01-09 16:52 gd_沐辰 阅读(184) 评论(0) 推荐(0) 编辑