02 2020 档案

摘要:0、前言: 线性表(一对一关系),每个元素之间只有一个直接前驱和一个直接后继。 树形结构(一对多关系),数据元素之间是层次关系,并且每一层的数据元素可能和下一层中多个元素相关,但只能和上一层中一个元素有关。(结点的孩子和双亲) 1、图(多对多关系) 图(Graph)是由顶点的有穷非空集合和顶点之间边 阅读全文
posted @ 2020-02-29 22:24 kkzhang 阅读(365) 评论(0) 推荐(0) 编辑
摘要:1、树转二叉树 1.加线:在所有兄弟结点之间加一条连线2.去线:对树中每个结点,只保留他与第一个长子结点的连线,删除他与其他孩子结点之间的连线3.层次调整。以树的根节点为轴心,将整棵树顺时针旋转一定角度,使结构层次分明。注意:第一个孩子是二叉树结点的左孩子,兄弟转换过来的孩子是结点的右孩子 转换后, 阅读全文
posted @ 2020-02-29 21:28 kkzhang 阅读(794) 评论(0) 推荐(0) 编辑
摘要:二叉树的递归创建,三种遍历: #include <stdio.h> #include <stdlib.h> #define ERROE 0 typedef char ElementType; typedef struct BinTree { ElementType data; struct Bint 阅读全文
posted @ 2020-02-29 21:03 kkzhang 阅读(366) 评论(0) 推荐(0) 编辑
摘要:1、二叉树(Binary Tree) 是n(n>=0)个结点的有限集合,该集合或者为空集(空二叉树),或者由一个根节点和两棵互不相交的,分别称为根节点的左子树和右子树的二叉树组成。 2、特数二叉树 1)斜二叉树 所有的结点都只有左子树的二叉树叫做左斜树 所有的结点都只有右子树的二叉树叫做右斜树 相当 阅读全文
posted @ 2020-02-29 13:19 kkzhang 阅读(847) 评论(0) 推荐(0) 编辑
摘要:1、递归:(归去来兮) 递归效率较低,如果明确知道迭代次数,则能用迭代最好用迭代,递归是函数自己调用自身,每次调用都需要入栈等操作。但是递归操作要比迭代简单和清楚。 递归函数的优点是定义简单,逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰。 使用递归函数需要注意防止栈 阅读全文
posted @ 2020-02-28 23:05 kkzhang 阅读(829) 评论(0) 推荐(0) 编辑
摘要:1、双向循环链表 双向链表是在单链表的每个结点中,再设置一个纸箱其前驱结点的指针域。双向链表可以有效的提高算法的时间性能,用空间换取时间。 typedef struct Node { ElemType data; struct Node* prior; //直接前驱指针 struct Node* n 阅读全文
posted @ 2020-02-20 18:32 kkzhang 阅读(263) 评论(0) 推荐(0) 编辑
摘要:1、单循环链表 将单链表中终端结点的指针端由空指针改为指向头节点,形成一个环,这种头尾相接的单链表为单循环链表。 注意:空表的判断条件由head->next==null改变为head->next==head. 无论从链表的哪一个结点出发,都可以访问到所有的结点。对于单循环链表:使用尾指针,可以在O( 阅读全文
posted @ 2020-02-20 18:03 kkzhang 阅读(344) 评论(0) 推荐(0) 编辑
摘要:快慢指针: 定义两个指针,一个快,一个慢,可以有多种用途。例如:快速找到位置长度单链表中的中间结点;对于循环链表中利用快慢指针也可以判断是否存在环。 快速找到位置长度单链表中的中间结点 1)使用一个指针,先索引一遍获取总长度,再取长度一半去循环获取到中间值;O(3L/2)。 2)使用两个指针,快指针 阅读全文
posted @ 2020-02-20 16:15 kkzhang 阅读(416) 评论(0) 推荐(0) 编辑
摘要:1、线性表的链式存储结构 每个元素多用一个位置来存放指向下一个元素位置的指针,依次类推,可以找到所有的元素。链式存储中,除了要存储数据本身外,还要存储它的后继元素的存储地址(指针)。 数据域:存储数据信息的域; 指针域:存储直接后继位置的域。 这两部分信息组成数据元素称之为存储映像,节点Node。链 阅读全文
posted @ 2020-02-20 15:03 kkzhang 阅读(1676) 评论(0) 推荐(0) 编辑
摘要:1、定义 线性表:零个或多个元素组成的有限序列。第一个无前驱,最后一个无后继,其余元素都有一个前驱和后继。元素的个数为n。 数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。例如,编程语言中的整型,浮点型等。 抽象数据类型ADT:对数据类型进行抽象,抽取出事务具有的普遍性的本质, 阅读全文
posted @ 2020-02-15 22:40 kkzhang 阅读(949) 评论(0) 推荐(0) 编辑
摘要:实验部分: ①输入、输出矢量及问题的阐述 由题意输入变量取值范围为e={-2,-1,0,1,2}和ec={-2,-1,0,1,2},则输入矢量有25种情况,分别如下所示: 则由T=int((e+ec)/2) ,采用向下取整,可得输出矢量T为: 该问题可描述为通过训练BP神经网络实现模糊控制规则T=i 阅读全文
posted @ 2020-02-15 17:24 kkzhang 阅读(1965) 评论(0) 推荐(0) 编辑
摘要:1、关键字 typedef 为一个数据类型起一个新的别名,typedef 的用法一般为: typedef OldName NewName; 需要强调的是,typedef 是赋予现有类型一个新的名字,而不是创建新的类型。 2、宏定义 #define 用 #define 定义一个标识符来表示一个常量(变 阅读全文
posted @ 2020-02-15 16:17 kkzhang 阅读(355) 评论(0) 推荐(0) 编辑
摘要:1、什么是指针(Point)? 内存中数据字节的地址(Address)编号。计算机中所有的数据都必须放在内存中,不同类型的数据占用的字节数不一样,例如 int 占用 4 个字节,char 占用 1 个字节。 数据和代码都以二进制的形式存储在内存中,计算机无法从格式上区分某块内存到底存储的是数据还是代 阅读全文
posted @ 2020-02-15 13:53 kkzhang 阅读(476) 评论(0) 推荐(0) 编辑
摘要:一、结构体的定义 数组(Array)是一组具有相同类型的数据的集合。但在实际的编程过程中,我们往往还需要一组类型不同的数据,例如对于学生信息登记表,姓名为字符串,学号为整数,年龄为整数,所在的学习小组为字符,成绩为小数,因为数据类型不同,显然不能用一个数组来存放。 结构体(Struct)可以来存放一 阅读全文
posted @ 2020-02-13 00:23 kkzhang 阅读(2041) 评论(0) 推荐(0) 编辑
摘要:数据结构和算法 1:程序设计=数据结构+算法。 数据结构就是关系,就是数据元素之间的一个或多种特定关系。 数据结构:1)逻辑结构(集合结构,线性结构,树形结构,图形结构),2)物理结构(数据存储方式,顺序存储,链式存储)。 2:算法:解决特定问题求解步骤的描述,计算机中表现为多个指令的有限序列,并且 阅读全文
posted @ 2020-02-12 17:13 kkzhang 阅读(552) 评论(0) 推荐(0) 编辑
摘要:存储结构表示方式:双亲表示法,孩子表示法,孩子兄弟表示法。 一、双亲表示法: 以双亲作为索引的关键词的一种存储方式 除根结点外,每个结点只有一个双亲,所以选择顺序存储占主要以一组连续空间存储树的结点,同时在每个结点中,附设一个指示其双亲结点位置的指针域 1、结点结构: 2、结点结构定义: /*树的双 阅读全文
posted @ 2020-02-12 17:09 kkzhang 阅读(1090) 评论(0) 推荐(1) 编辑
摘要:一、定义: 树(Tree):是n (n>0)个结点的有限集。 当n=0时 (根节点是唯一的),称为空树,在任意一个非空树当中:有且仅有一个特定的称为根节点(Root)的结点;当n>1时,其余结点可以分为m(m>0)个互不相交的有限集T1,T2...,Tm,其中每一个集合本身又是一个树,并且称为根的子 阅读全文
posted @ 2020-02-12 15:34 kkzhang 阅读(1447) 评论(0) 推荐(0) 编辑