线索二叉树

之所以有线索二叉树一说,那么肯定是因为普通的二叉树是存在一定缺陷的,那我们首先就来看看为什么需要线索二叉树呢?

关于二叉树的基本概念可以参考 二叉树二叉树的遍历

二叉树的遍历

在之前的 二叉树 章节当中,我们介绍了二叉树的定义以及性质,所以本章我们就重点来看看二叉树遍历的相关内容

二叉树

在前一章当中,我们介绍了 的相关概念,但是普通的树,我们在平时使用是较少的,而一些比较特殊的树则是使用较多的,比如二叉树的使用范围就较为广泛,也最具有代表意义,因此在本章当中我们将会重点讨论二叉树

在之前的章节当中,我们花费了许多篇幅介绍了 单链表循环链表双向链表与双向循环链表栈和队列 等相关知识,但是如果细心观察可以发现,我们之前介绍的种种,它们其实都是一种『一对一』的线性结构,无论是线性表也好,或者说是栈和队列,都是一样的,所以今天我们就来看一种『一对多』的数据结构,那就是『树结构』

BF 和 KMP 算法

我们在平常开发过程当中,针对字符串的处理那可以说是十分常见的了,所以我们今天就看两种字符串当中的算法,不过我们在看具体算法的实现之前,我们先来了解一下字符串的概念

递归

递归(Recursion algorithm)在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法,递归式方法可以被用于解决很多的计算机科学问题,因此它是计算机科学中十分重要的一个概念,绝大多数编程语言支持函数的自调用,在这些语言中函数可以通过调用自身来进行递归,在平常可以说是经常可以听到的概念,今天我们就来深入的了解一下,什么是递归,以及递归的一些相关应用

队列

在之前的章节当中我们介绍过了 的相关知识,本篇我们就接着上篇未完的内容来了解一下和栈十分相似的队列的相关知识

栈和队列

从本章开始,我们来看两个平常可能听到的比较多的名词,那就是栈和队列,其实严格意义上来说,栈和队列也属于线性表,因为它们也都用于存储逻辑关系为『一对一』的数据,但由于它们比较特殊,所以我们在此将它们两个单独拿出来进行了解

使用栈结构存储数据,讲究『先进后出』,即最先进栈的数据,最后出栈,而使用队列存储数据,讲究『先进先出』,即最先进队列的数据,也最先出队列,既然栈和队列都属于线性表,所以根据线性表分为顺序表和链表的特点,栈也可分为顺序栈和链表,队列也分为顺序队列和链队列

因为篇幅有限,本篇主要介绍栈的相关内容,而关于队列的相关内容可以见 队列

双向链表与双向循环链表

在之前的章节当中,我们介绍过了 单链表循环链表 相关内容,今天我们就来看看它们的升级版本,也就是所谓的双向链表与双向循环链表

循环链表

我们在之前的章节当中介绍过了 线性表(单链表),对于单链表而言,由于每个结点只存储了向后的指针,到了尾部标识就停止了向后链的操作(也就是 null,空指针),所以说按照这样的方式,只能索引后继结点而不能索引前驱结点,所引起的问题也是显而易见的,比如如果不从头结点出发,就无法访问到全部结点,遇到这种情况,我们就可以采用我们今天将要介绍到的循环链表

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×