ZCMUCZX的博客

学习的脚步

关于二叉树的概念和性质

二叉树具有五种基本形态: 1.空二叉树 2.只有一个根结点 3.根结点只有左子树 4.根结点只有右子树 5.根结点既有左子树又有右子树 下面再简单的介绍下一些特殊的二叉树 1、斜树 所有的结点都只有左子树的二叉树叫左斜树。所有结点都是只有右子树的二叉树叫右斜树。这两者统称为斜树...

2018-07-09 07:53:04

阅读数:28

评论数:0

关于树的存储结构的结点的表示方式

这里简单的主要介绍下三种对树的存储结构的表示 双亲表示法 如果我们以一组连续的存储空间存储树的结点,在每个结点当中我们去附加一个指示器指示其双亲结点的位置,其的结点结构如下所示 其中data是数据域,存储的是结点的数据信息,parent是指针域,存储的是该结点的双亲在数组当中...

2018-07-09 07:14:31

阅读数:31

评论数:0

关于树结构的定义

树的定义 其实关于树就是一对多的数据结构,关于其的定义如下所示 树(Tree)是n(n≥0)个结点的有限集。n=0时称为空树。在任意一棵非空树中:(1)有且仅有一个特定的称为根(Root)的结点;(2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、……、Tm,其中每...

2018-07-09 06:19:55

阅读数:50

评论数:0

串的基本概念

对于数据结构的这些方面其实主要是为了做个总结,记录知识点 串的定义:是由零个或多个字符组成的有限序列,也称为字符串 串当中的字符数目n称为是串的长度,零个字符的串可以称为是空串,需要注意的是这个空串和空格串是不同的,空格串是只包含空格的串,空格串是有长度的,可以不止有一个空格 ...

2018-07-06 13:03:31

阅读数:54

评论数:0

队列的定义

队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。 队列是一种先进先出(First In First Out)的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为队头 在我们利用键盘进行字母数字的输入显示到显示屏上其实就是利用了队列的...

2018-07-05 01:05:42

阅读数:176

评论数:0

栈的基本应用

其实栈在斐波那契数列当中其实就得到了应用 关于斐波那契数列的数学定义如下所示 如果我们采取常规的迭代的方法去求的话其实也算比较简单了 int main() { int i; int a[40]; a[0] = 0; a[1] = 1; pr...

2018-07-03 21:07:03

阅读数:38

评论数:0

栈的链式存储结构

栈的链式存储结构称为链栈,对于链栈来说,基本不存在栈满的情况,除非内存已经没用可以使用的空间,如果真的存在这种情况的话,那么就说明此时的计算机操作系统已经快要死机了,那么我们就没必要再去关注溢出的问题了 关于链栈的结构如下所示 关于链栈的程序定义如下所示 typedef st...

2018-07-03 20:34:15

阅读数:54

评论数:0

栈的基本概念

栈就是限定仅在表尾进行插入和删除操作的线性表 我们通常把允许插入和删除的一段称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为后进先出(Last In First Out)的线性表,简称为LIFO结构 栈的插入操作我们一般称为是进栈、栈的删...

2018-07-03 20:17:50

阅读数:115

评论数:0

双向链表

双向链表(double linked list)是在单链表的每个结点中,再设置一个指向其前驱结点的指针域,所以在双向链表中的结点都有两个指针域,一个指向直接后继,另一个指向直接前驱 其的结构定义如下所示 “/* 线性表的双向链表存储结构 */ typedef struct DulN...

2018-07-03 18:54:32

阅读数:44

评论数:0

循环链表

将单链表中的终端结点的指针端由空指针改为指向头结点,就使整个单链表形成一个环,这种头尾相连接的单链表称为是单循环链表,简称为循环链表 对于循环链表我们一样一般都会去设置一个头结点,因为这样可以使其和非空链表处理一致 非空的循环链表如下所示 对于循环链表和单链表的处理主要差异其实是...

2018-07-03 18:41:23

阅读数:48

评论数:0

静态链表

在有些语言当中是没有指针的,比如说Basic、Fortan等早期的编程高级语言,由于没有指针,链表结构如果像我们实现单链表的形式来实现肯定是实现不了了,所以我们就想出了用数组来代替指针 我们让数组的元素都是由两个数据域组成,data和cur,也就是说数组的每一个下标都对应一个data和一个...

2018-07-03 14:34:40

阅读数:91

评论数:0

线性表的链式存储结构

其实线性表的顺序存储结构最大的缺点就是插入和删除的时候需要移动大量的元素,这样的话会很耗费时间,为了解决这个问题,我们可以去是使用链式存储结构,但是链式存储结构就做不到随机访问了 线性表的链式存储结构的特点就是可以用一组任意的存储单元存储线性表的数据元素,这组存储单元可以是连续的,也可以...

2018-07-02 21:30:26

阅读数:47

评论数:0

线性表当中的顺序存储结构

顺序存储结构是线性表当中的物理存储结构之一,线性表的顺序存储结构指的是一段地址连续的存储单元依次存储线性表的数据元素 顺序存储方式就是在内存当中找了块地,通过占位的形式,把一定内存空间给占了,然后把相同数据类型的数据元素依次存放在这块空地当中 线性表当中的每个数据元素的类型都是相同的...

2018-07-02 13:39:20

阅读数:29

评论数:0

线性表的基本概念

线性表:其实就是零个或多个数据元素的有限序列 线性表当中元素之间是有顺序的,若元素存在多个,则第一个元素无前驱,最后一个元素无后继,其他每个元素都有且只有一个前驱和后继,其结构如下所示 我们把线性表元素的个数n(n>=0)定义为线性表的长度,当n=0的时候就称...

2018-07-02 12:35:20

阅读数:42

评论数:0

算法绪论

基本介绍 怎么说呢,我觉得这部分知识还是有必要去了解下的,所以这边也是做一个整理和记录 算法其实就是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作 算法具有五个基本特性:输入、输出、有穷性、确定性和可行性 输入和输出其实就是指比...

2018-07-02 09:37:55

阅读数:22

评论数:0

数据结构基本概念和术语

我觉得数据结构是需要理论和实践相结合的,其实我很不愿意听到说理论没有用的话,我觉得知识是需要成体系的,你连一个面都没有,为什么就能成长的很厉害?当然纯理论肯定是不够的,所以其实还需要配合一定的实践操作,我觉得读书就是一个修养问题,下面就先简单的介绍下其基本的概念 数据结构其实是一门研究非...

2018-07-01 22:36:59

阅读数:42

评论数:0

数据结构-散列表

先简单的引入下概念:在日常生活中我们去查找数据肯定会去查找数据,在查找的过程中,如果我们只去考虑各个元素的关键字之间的相对的大小,记录在存储结构中的位置和其关键字没有直接的关系,查找的实际就和表的长度有关,这样的话在结点的个数有很多的话,我们查找的过程就要去和很多其实无效的结点的关键字进行比较,这...

2017-12-01 20:59:14

阅读数:116

评论数:0

字符串匹配-KMP、BF算法

KMP算法比BF算法的时间复杂度降了不知道多少,BF算法在最好的情况下时间复杂度是O(m+n),而最坏情况下的时间复杂度是O(m*n)因为BF算法是要让i的位置回溯的,遇到不匹配的回溯到i-j+2,而KMP算法是不需要回溯的。KMP算法仅当模式串和主串直接有存在许多部分匹配的情况下,才显得比BF算...

2017-01-25 12:55:05

阅读数:251

评论数:0

线性表和有序表的合并

比如说我们有两个集合A和B,我们要求一个新的集合A=AUB。比如说A=(1,4,3,11)B=(2,4,3)我们需要把这两个集合中的元素合并的话,我们就可以选择一个表为基础,然后往这个表当中不断的插入这个表当中没有的元素。如果在这里我们采用的是顺序存储结构那么时间复杂度为O(m*n),如果采取链式...

2017-01-10 23:00:53

阅读数:550

评论数:0

顺序表存储结构

线性表的顺序存储结构是一种随机存取的存储结构。比如存储一个多项式的系数和指数的线性表我们可以这么表示。#define MAXSIZE 100//多项式可能达到的最大长度 typedef struct//多项式的定义 { float coef;//系数 int expn;//指数 }...

2017-01-10 20:08:21

阅读数:880

评论数:0

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